当前位置: 代码迷 >> 综合 >> Python使用python-nmap(windows)
  详细解决方案

Python使用python-nmap(windows)

热度:53   发布时间:2023-11-20 01:15:19.0

安装

首先需要安装nmap!!!(这很重要):https://nmap.org/download.html

测试代码:

import nmapnm = nmap.PortScanner(nmap_search_path=('nmap', r"D:\Nmap\nmap.exe"))# 百度ip
baiduIp = '180.97.33.108'
nm.scan(baiduIp, '80')
a = nm[baiduIp].has_tcp(80)
print(baiduIp + "---" + str(a))

如果你不把nmap.exe的路径放入PortScanner中或者没有安装nmap那就会报错:

他就会出现这种情况!!!!

基本使用实例:

import nmap # 导入 nmap.py 模块nm = nmap.PortScanner() # 获取 PortScanner 对象nm.scan('127.0.0.1', '22-443') # 扫描主机 127.0.0.1 端口号 22-443nm.command_line() # 获取用于扫描的命令行:nmap -oX - -p 22-443 127.0.0.1nm.scaninfo() # 获取本次扫描的信息 {'tcp': {'services': '22-443', 'method': 'connect'}}nm.all_hosts() # 获取所有扫描到的主机nm['127.0.0.1'].hostname() # 获取 127.0.0.1 的主机名nm['127.0.0.1'].hostnames() # 获取list格式的主机名dict 127.0.0.1 # 如 [{'name':'hostname1', 'type':'PTR'}, {'name':'hostname2', 'type':'user'}]nm['127.0.0.1'].state() # 获取主机 127.0.0.1 的状态 (up|down|unknown|skipped)nm['127.0.0.1']['tcp'].keys() # 获取所有tcp端口nm['127.0.0.1'].all_tcp() # 获取所有tcp端口 (已排序)nm['127.0.0.1'].all_udp() # 同上nm['127.0.0.1'].all_ip() # 同上nm['127.0.0.1'].all_sctp() # 同上nm['127.0.0.1'].has_tcp(22) # 是否含有主机 127.0.0.1 的 22 端口的信息nm['127.0.0.1']['tcp'][22] # 获取主机 127.0.0.1 22 端口(tcp)的所有信息nm['127.0.0.1'].tcp(22) # 获取主机 127.0.0.1 22 端口的所有信息

 

  相关解决方案