# -*- coding:utf-8 -*- import socket from socket import * import optparse def connScan(tgtHost,tgtPort): try: #这里将connSkt = socket.socket()改为 #connSkt = socket() #暂时还没有找到原因 #个人感觉是面向对象的特性,找了好久的错误,应该恶补一下面向对象的知识了 connSkt=socket() connSkt.connect((tgtHost,tgtPort)) #此处的connect需要有两个括号,否则连接不上,这里需要记住,找了好久,至此简单的端口扫描器就已经制作完成了 print "[+] %d open "%tgtPort # connSkt.send('hello world ') # results=connSkt.recv(100) # print "[+] "+str(results) connSkt.close() except Exception,e: pass def portScan(tgtHost,tgtPorts): try: tgtIP=gethostbyname(tgtHost) except: print "[-] cannot resolve %s :unknow host "%tgtHost return try: tgtName=gethostbyaddr(tgtIP) print "[+] scan results for : "+tgtName[0] except: print "[+] scan results for : "+tgtIP for tgtPort in tgtPorts: connScan(tgtHost,int(tgtPort)) def main(): parser=optparse.OptionParser("usage%prog "+"-H <target host > -p <target port>") parser.add_option('-H',dest='tgtHost',type='string',help='specify target host ') parser.add_option('-p',dest='tgtPort',type='string',help='specify target port[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 post[s] " exit(0) # print "please input your want to scan ip :" # tgtHost=raw_input("ip: ") # print "now ,scan 1--65535 port " portScan(tgtHost,tgtPorts) if __name__ == '__main__': main()
使用Python实现自己的端口扫描器(简易版本 代码实现
最新推荐文章于 2024-05-15 13:46:37 发布