這次我們使用python-nmap包進(jìn)行計(jì)算機(jī)端口掃描,有l(wèi)iunux基礎(chǔ)的同學(xué)一定知道nmap的強(qiáng)大剔难,不廢話迅诬,上代碼:
# coding=utf8
import nmap
import sys
def main():
scan_row = []
input_data = raw_input('Please input hosts and port: ')
scan_row = input_data.split(" ")
if len(scan_row) != 2:
print(" Input error. Please input again.")
sys.exit(0)
hosts = scan_row[0]
port = scan_row[1]
try:
nm = nmap.PortScanner()
except nmap.PortScannerError as e:
print('Nmap not found. e: %s' % e)
sys.exit(0)
except Exception as e:
print('Unexpected error. e:%s' % e)
sys.exit(0)
try:
nm.scan(hosts=hosts, arguments=' -v -sS -p ' + port)
except Exception as e:
print('Scan error.')
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()
lport.sort()
for port in lport:
print('Port : %s/state :%s ' % (port, nm[host][proto][port]['state']))
if __name__ == '__main__':
main()
這里我們pip 安裝python-namp包,具體的詳細(xì)方法請參考官網(wǎng)源碼包中實(shí)例旁壮。