如何用Python3编写一个端口扫描脚本?
- 内容介绍
- 文章标签
- 相关推荐
本文共计305个文字,预计阅读时间需要2分钟。
哎呀,好久没写代码了,想着多线程那些东西都差点忘了,差别不大嘛,下面就这个了。
啊 好久没写代码了,想着多线程啥的都忘得差不多了
就下面这个啦,
#coding=utf-8 import socket,threading from socket import * def tcp_connect(ip,port): tcpsock=socket(AF_INET,SOCK_STREAM) tcpsock.settimeout(0.5) try: result=tcpsock.connect_ex((ip,port)) if(result==0): print ("%s:%s 开启" % (ip, port)) else: #print ("%s:%s 关闭" % (ip, port)) pass tcpsock.close() except socket.error as e: print ("[!]错误",e) def url_ip(url): if(‘‘ in url or ‘‘ in url): url=url[url.find(‘://‘)+3:] targetip = socket.getaddrinfo(url, ‘" in web or "" in web: web = web[web.find(‘://‘)+3:] print(web) print("[*]正在分析网站服务器IP") try: server_ip = socket.gethostbyname(str(web)) print("[*]服务器IP为%s"%server_ip) scan_port(server_ip) except Exception as e: print("[!]服务器IP获取失败") pass def scan_port(ip): """扫描端口""" print("[*]开始扫描目标端口") start = time.time() g = gevent.pool.Pool(50) #设置线程数 run_list = [] for port in range(1,200): run_list.append(g.spawn(TCP_connect,ip,port)) gevent.joinall(run_list) end = time.time() print("[*]总耗时%s"%time.strftime("%H:%M:%S",time.gmtime(end-start))) def main(): print( """ 1.通过IP扫描端口 2.通过网址扫描端口 """ ) uc = int(raw_input("[+]请输入选择:")) if 1 == uc: scan_ip() elif 2 == uc: scan_web() else: print("[!]输入有误") if __name__ == "__main__": main()
本文共计305个文字,预计阅读时间需要2分钟。
哎呀,好久没写代码了,想着多线程那些东西都差点忘了,差别不大嘛,下面就这个了。
啊 好久没写代码了,想着多线程啥的都忘得差不多了
就下面这个啦,
#coding=utf-8 import socket,threading from socket import * def tcp_connect(ip,port): tcpsock=socket(AF_INET,SOCK_STREAM) tcpsock.settimeout(0.5) try: result=tcpsock.connect_ex((ip,port)) if(result==0): print ("%s:%s 开启" % (ip, port)) else: #print ("%s:%s 关闭" % (ip, port)) pass tcpsock.close() except socket.error as e: print ("[!]错误",e) def url_ip(url): if(‘‘ in url or ‘‘ in url): url=url[url.find(‘://‘)+3:] targetip = socket.getaddrinfo(url, ‘" in web or "" in web: web = web[web.find(‘://‘)+3:] print(web) print("[*]正在分析网站服务器IP") try: server_ip = socket.gethostbyname(str(web)) print("[*]服务器IP为%s"%server_ip) scan_port(server_ip) except Exception as e: print("[!]服务器IP获取失败") pass def scan_port(ip): """扫描端口""" print("[*]开始扫描目标端口") start = time.time() g = gevent.pool.Pool(50) #设置线程数 run_list = [] for port in range(1,200): run_list.append(g.spawn(TCP_connect,ip,port)) gevent.joinall(run_list) end = time.time() print("[*]总耗时%s"%time.strftime("%H:%M:%S",time.gmtime(end-start))) def main(): print( """ 1.通过IP扫描端口 2.通过网址扫描端口 """ ) uc = int(raw_input("[+]请输入选择:")) if 1 == uc: scan_ip() elif 2 == uc: scan_web() else: print("[!]输入有误") if __name__ == "__main__": main()

