1. 程式人生 > >python-nmap模組常用方法說明

python-nmap模組常用方法說明

一、模組常用方法說明

 本節介紹python-nmap模組的兩個常用類,一個為PortScanner()類,實現一個nmap工具的埠掃描功能封裝;另一個為PortScannerHostDict()類,實現儲存與訪問主機的掃描結果。

 PortScanner()類常用方法

  •  scan方法
scan(self,hosts='127.0.0.1',ports=None,arguments='-sV')方法,實現指定主機、埠nmap命令列引數的掃描。引數hosts為字串型別,表示掃描的主機地址,格式可以用"scanme.nmap.org","198.116.0-255.1-127""216.163.128.20/20
"表示;port為字串型別,表示掃描的埠,可以用"22,53,110,143-4564"來表示;引數arguments為字串型別,表示nmap命令列引數,格式為"-sU -sX -sC",例如: nm = map.PortScanner() nm.scan('192.168.1.21-22','22,80')
  • command_line(self)方法,返回的掃描方法對映到具體nmap命令列,如:
>>> nm.command_line()
u'mmap -oX - -p 22,80 -sV 192.168.1.21-22'
  • scaninfo(self)方法,返回nmap掃描資訊,格式為字典型別,如:
>>> nm.scaninfo()
{u'tcp': {'services': u'22,80','method':u'syn'}}
  • all_hosts(self)方法,返回nmap掃描的主機清單,格式為列表型別,如:
[u'192.168.1.21',u'192.168.1.22']

 PortScannerHostDict()類常用方法

  • hostname(self)方法,返回掃描物件的主機名,如:
>>> nm['192.168.1.22'].hostname()
u'SN2013-08-022'
  • state(self)方法,返回掃描物件的狀態,包括4種狀態(up、down、unknown、skipped),如:
>>> nm['192.168.1.22'].state()
u'up'
  • all_protocols(self)方法,返回掃描的協議,如:
>>> nm['192.168.1.22'].all_prococols()
[u'tcp']
  • all_tcp(self)方法,返回TCP協議掃描的埠,如:
>>> nm['192.168.1.22'].all_tcp()
[22,80]
  • tcp(self,port)方法,返回掃描TCP掃描協議port(埠)的資訊,如:
>>> nm['192.168.1.22'].tcp(22)
{'state': u'open','reason':u'syn-ack','name':u'ssh'}