Python 端口扫描器
需要导入的模块socket,optparse
首先要获取输入的主机、端口名用optparse这个库
调用optparse.Optionparse()生成一个参数解析器
再用parser.add_option()指定这个脚本需要解析的参数是什么。
def main():
parser = optparse.OptionParser(“usage%prog” +" -H -P")
parser.add_option("-H",dest=“tgtHost”,type=“string”,help=“specify target port”)
parser.add_option("-P",dest=“tgtPort”,type=“string”,help=“specify targetport[s] separated by comma”)
(options,args) = parser.parse_args()
tgtHost = options.tgtHost
tgtPorts = str(options.tgtPort).split(’,’)
if (tgtHost ==None) | (tgtPorts[0] ==None):
print(“you must specify a target host and port[s]”)
exit(0)
第一步完成
继续生成两个函数connScan(tgtHost,tgtPort),portScan(tgtHost,tgtPorts)
他两的作用简单来说就是接收到主机名和端口列表做一个遍历依次连接判断端口是否开放,其中gethostbyname()可以确定主机名对应的IP地址
完成版
输出结果
参考python绝技一书,但是这样写出来的扫描器远远比不上nmap,后续会有多线程的加强版晚点再po上来