使用python调用nmap模块实现端口扫描
安装python-nmap模块
pip3 install python-nmap
PortScanner()类,实现一个nmap工具的端口扫描功能封装;
代码
import sys
import nmap
nm = nmap.PortScanner()
if len(sys.argv) == 3:
target = sys.argv[1]
port = sys.argv[2]
else:
print("Invalid amount of arguments.")
print("example:python3 scanner.py <ip or hostname> <port eg:22 or 1-1000>")
sys.exit()
nm.scan(target,port)
for host in nm.all_hosts():
print('---------------------------------------------------------')
print('Host : %s (%s)' % (host,nm[host].hostname()))
print('State : %s' % nm[host].state())
for proto in nm[host].all_protocols():
print('-----------------------------------------------------')
print('protocol : %s' % proto )
lport = nm[host][proto].keys()
for port in lport:
print('port : %s\tstate : %s\tservices : %s\tversion: %s' % (port,nm[host][proto][port]['state'],nm[host][proto][port]['name'],nm[host][proto][port]['version']))