python-nmap模块

首先看一下PortScanner类,这个类中包含如下几个函数。
scan()函数:
这个函数的完整形式为
scan(self, hosts=‘127.0.0.1’, ports=None, arguments=’-sV’,sudo=False),
用来对指定目标进行扫描,其中需要设置的三个参数包括hosts、ports和arguments
scan(self, hosts=‘127.0.0.1’, ports=None, arguments=’-sV’,sudo=False),

参数hosts的值为字符串类型,表示要扫描的主机,形式可以是IP地址,例如“192.168.1.1”,也可以是一个域名,例如“www.nmap.org”。
参数ports的值也是字符串类型,表示要扫描的端口。如果要扫描的是单一端口,形式可以为“80”。如果要扫描的是多个端口,可以用逗号分隔开,形式为“80,443,8080”。如果要扫描的是连续的端口范围,可以用横线,形式为“1-1000”。
参数arguments的值也是字符串类型,这个参数实际上就是Nmap扫描时所使用的参数,
如“-sP”“-PR”“-sS”“-sT”“-O”“-sV”等。
“-sP”表示对目标进行Ping主机在线扫描,
“-PR”表示对目标进行一个ARP的主机在线扫描,
“-sS”表示对目标进行一个TCP半开(SYN)类型的端口扫描,
“-sT”表示对目标进行一个TCP全开类型的端口扫描,
“-O”表示扫描目标的操作系统类型,
“-sV”表示扫描目标上所安装网络服务软件的版本。

如果要对192.168.3.131的1~500端口进行一次TCP半开扫描
如下:
1.
import nmap
nm = nmap.PortScanner()
nm.scan(“192.168.3.131”,“1-500”,“sS”)
在这里插入图片描述
对上述查询的结果,做进一步查询
1.all_hosts()函数:返回一个被扫描的所有主机列表
查询主机
nm.all_hosts()
在这里插入图片描述
command_line()函数:返回在当前扫描中使用的命令行,如图所示。
在这里插入图片描述
csv()函数:返回值是一个CSV(逗号分隔值文件格式)的输出

在这里插入图片描述
检查是否扫到该主机存在,如果有返回True
nm.has_host(“ip”)
在这里插入图片描述
scaninfo()函数:列出一个扫描信息的结构,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
PortScannerAsync类中最为重要的函数也是scan(),
用法与PortScanner类中的scan()基本一样,但是多了一个回调函数。
完整的scan()函数格式为
scan(self, hosts=‘127.0.0.1’,ports=None, arguments=’-sV’, callback=None, sudo=False),这里面的callback是以(host, scan_data)为参数的函数
在这里插入图片描述
后台扫描,前台可以做其他事

still_scanning():如果扫描正在进行,则返回True,否则返回False
wait(self, timeout=None):函数表示等待时间
stop():停止当前的扫描

使用python-nmap模块来编写一个扫描器

扫描192.168.3.131 开放从1~1000的哪些端口,这里先使用命令行来完成这个程序。

打印出以下格式
在这里插入图片描述

代码:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值