标签:11 xml 09 host result path os port
import os
import xml.etree.ElementTree as ET
from urllib.parse import urlparse
currDir = os.path.dirname(os.path.realpath(__file__))
rootDir = os.path.abspath(os.path.join(currDir, "../../.."))
batch_target = 'http://223.4.72.2'
batch_target = urlparse(batch_target).hostname
result_dir = os.path.join(rootDir, f"lib/core/infoCollection/result/{batch_target}.xml")
cmd = f"nmap -A -oX {result_dir} {batch_target}"
os.system(cmd)
d = [
{"path": "address", "el": "addr"},
{'path': 'hostnames/hostname', 'el': 'name'},
{"path": "os/osmatch/osclass", "el": "osfamily"},
]
if "./result/223.4.72.2.xml":
tree = ET.parse("./result/223.4.72.2.xml")
root = tree.getroot()
for i in root.iter("host"):
for h in d:
e = i.find(h['path'])
if e is not None:
print(e.get(h["el"]))
else:
print("UNKNOWN ", (h["path"]))
#
# # test-2
import json
from bs4 import BeautifulSoup
with open('./result/223.4.72.2.xml', 'r', encoding='utf-8') as file:
read_result = file.read()
soup = BeautifulSoup(read_result, 'lxml')
for host in soup.find_all('host'):
if host.status['state'] == 'up':
ip = host.address['addr']
ports = []
for port in host.ports.find_all('port'):
ports.append({
'protocol': port['protocol'],
'portid': port['portid'],
'state': port.state['state'],
'service': port.service['name']
})
print(json.dumps(ports, indent=4))
标签:11,xml,09,host,result,path,os,port 来源: https://blog.csdn.net/m0_53125248/article/details/120234723
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。