使用NMAP扫描和python代码,我想将扫描结果存储在我的sql中。从结果中提取打开的端口,状态和正在运行的服务。但是我也想提取操作系统。这该怎么做? 扫描中使用的参数为-A -sV。我不需要从终端运行代码。因此-O是不可能的,因为它需要root preveliges。
import nmap
nmScan=nmap.PortScanner()
host='172.27.20.139'
result=nmScan.scan(hosts=host, arguments='-oN pooja.txt -A -sC -sV -F')
print('Host : %s (%s)' % (host, nmScan[host].hostname()))
print('State : %s' % nmScan[host].state())
for proto in nmScan[host].all_protocols():
print('----------')
print('Protocol : %s' % proto)
lport = nmScan[host][proto].keys()
for port in lport:
thisDict = nmScan[host][proto][port]
print ('port : %s\t\tstate : %s\t\tService Name:%s\t\tService Product:%s\tVersion%s'% (port, nmScan[host][proto][port]['state'],thisDict['name'],thisDict['product'] ,thisDict['version']))
print('--------------------------------------------------------')
print(result)
我想从结果中提取操作系统。实际扫描结果最后以打印(结果)显示。以上结果仅从该结果中提取。
显示输出。Output