序
接着学习。其实,在端口扫描工具里面有一个特别出名,那就是nmap,其官方网站是 https://nmap.org/,而Python里面也有一个nmap模块,此次就是使用 python-nmap 模块,借用nmap模块来进行端口扫描。
nmap安装
我的电脑系统是 Windows 10 ,Python版本是 2.7.13 64bit。最简单的安装方式是:pip install python-nmap
,不过,这样安装的时候,如果网络“不好”,这个不好指的是外网,下载速度会很慢。
于是,可以采用这种方法:pip install -i https://pypi.douban.com/simple/ python-nmap
,这样下载速度会快一些,采用的是豆瓣的源。你也可以在命令行下进入Python,输入help("modules")
,回车看看列表是否包含nmap模块。
端口扫描器代码
# -*- coding: utf-8 -*-
# @Time : 2017/11/19 13:47
# @Author : Liangz
# @Site : www.liangz.org
# @File : NmapScan.py
# @Software: PyCharm
import nmap
# import socket #此处我想借用socket,把域名转换成IP
import optparse
def nmapScan(targetHost, targetPort):
nmScan = nmap.PortScanner()
results = nmScan.scan(targetHost, targetPort)
state = results['scan'][targetHost]['tcp'][int(targetPort)]['state']
print(u"[+] " + targetHost + u" tcp/ " + targetPort + " " + state)
def main():
parser = optparse.OptionParser(u'使用方法:python NmapScan.py -H <目标主机> -p <目标端口>')
parser.add_option('-H', dest='targetHost', type='string', help=u'指定目标主机')
parser.add_option('-p', dest='targetPort', type='string', help=u'指定目标端口')
(options, args) = parser.parse_args()
targetHost = options.targetHost
targetPort = options.targetPort
args.append(targetPort)
if (targetHost == None)|(targetPort == None):
print(u'[-] 你必须指定目标主机和端口!')
exit(0)
for targetPort in args:
nmapScan(targetHost, targetPort)
if __name__ == '__main__':
main()
在我的实验中,这个代码不支持域名,扫描目标只能是IP,是一个缺陷,我会尝试修改修改。另外就是扫描速度很慢,我以百度的IP为目标,扫描 21 22 23 80 443 445 这几个端口。结果几分钟才扫描完成。结果如下:
E:\Projects\Python\20171114>python NmapScan.py -H 115.239.211.112 -p 21 22 23 80 443 445
[*] 115.239.211.112 tcp/ 22 filtered
[*] 115.239.211.112 tcp/ 23 filtered
[*] 115.239.211.112 tcp/ 80 open
[*] 115.239.211.112 tcp/ 443 open
[*] 115.239.211.112 tcp/ 445 filtered
[*] 115.239.211.112 tcp/ 21 filtered
注意
在测试本代码的时候,需要注意,Windows主机上需要安装 nmap ,现在地址为 https://nmap.org/dist/nmap-7.60-setup.exe。我已经经历过这样的教训。我之前没有安装,结果:nmap.nmap.PortScannerError: 'nmap program was not found in path. PATH is : ......
,查到知乎才知道需要在本地计算机上面安装nmap 。
如有错误,敬请指出,谢谢阅读。 –2017-11-19 17:25:07
最新评论
我想请问下。您这部署后能够上传附件图片吗?我按照您的方式部署后。能运行。但是无法上传附件,图片。
感谢教程,但是我安装后无法上传附件。图片什么的都上传不了。您这可以吗
你这个能够添加附件图片吗?我怎么无法上传图片附件呢。。
这个软件有bug的,客户端windows有些键不能用如逗号、句号
没有收到邮件通知
我的评论通知貌似坏掉了,定位一下问题
测试一下重新部署后的邮件功能
居然看到自己公司的MIB库,诚惶诚恐