import nmap
nm = nmap.PortScanner() n = nm.scan(hosts="192.168.0.190", ports="22-443", arguments='-sV', sudo=False) nm.command_line() # 获取用于扫描的命令行 nmap -oX - -p 22-443 -sV 192.168.0.190 nm.scaninfo() # 获取nmap扫描信息 {'tcp': {'method': 'syn', 'services': '22-443'}} nm.all_hosts() # 获取所有已扫描的主机 ['192.168.0.190'] n["scan"]['192.168.0.190'].hostname() # 获取一个主机名 n["scan"]['192.168.0.190'].hostnames() # 获取主机的主机名列表 [{'name': 'hostname', 'type': 'PTR'}] n["scan"]['192.168.0.190'].state() # 获取主机状态 (up|down|unknown|skipped) n["scan"]['192.168.0.190'].all_protocols() # 在(ip|tcp|udp|sctp)中获取所有扫描的协议['tcp','udp'] n["scan"]['192.168.0.190']['tcp'].keys() #获取tcp协议的所有端口 dict_keys([80, 443, 22]) n["scan"]['192.168.0.190'].all_tcp() # 获取tcp协议的所有端口(排序版本)[22, 80, 443] n["scan"]['192.168.0.190'].all_udp() # 获取udp协议的所有端口(排序版本) n["scan"]['192.168.0.190'].all_ip() # 获取ip协议的所有端口(排序版本) n["scan"]['192.168.0.190'].all_sctp() # 获取sctp协议的所有端口(排序版本) n["scan"]['192.168.0.190'].has_tcp(22) # 主机192.168.0.190上的端口22/tcp是否有任何信息 True n["scan"]['192.168.0.190']['tcp'][22] # 获取有关主机192.168.0.190上tcp端口22的信息 n["scan"]['192.168.0.190'].tcp(22)# 获取有关主机192.168.0.190上tcp端口22的信息 n["scan"]['192.168.0.190']['tcp'][22]['state'] # 获取主机192.168.0.190上端口22/tcp的状态