python-nmap模組常用方法說明
阿新 • • 發佈:2018-12-31
一、模組常用方法說明
本節介紹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'}