python使用socket实现多线程端口扫描
来源:互联网 发布:mac os x10.10.5 编辑:程序博客网 时间:2024/05/23 21:09
使用socket主要是判断是否端口能否联通
socket<<详情参考>>
1.socket.connect() 检测端口,若端口不能联通,则会抛出异常,若无异常,则端口存活,使用try-except异常捕获处理,进而进行端口扫描
这里将使用100个线程,每个端口连接都要检查是否超过65535
#coding=utf8import socketimport threadingdef scan(host,cport): for x in range(660): p=x+660*cport try: if p < 65535: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((host, p)) s.settimeout(0.1) print "local open port : %d"%p s.close() else : break except Exception: passlist = []for i in range(100): t = threading.Thread(target=scan,args=('localhost',i,)) list.append(t) t.start()for threadinglist in list: threadinglist.join()
输出:
local open port : 22local open port : 111local open port : 34172local open port : 49716local open port : 51078
2.socket.connect_ex() 若联通则返回为0,否则返回为非0
依据connect_ex返回值判断端口是否存活
import socket import threading from Queue import Queue def scan(port): s = socket.socket() s.settimeout(1) if s.connect_ex(('localhost', port)) == 0: print "local open port : %d"%port s.close() def worker(): while not q.empty(): port = q.get() try: scan(port) finally: q.task_done() if __name__ == '__main__': q = Queue() map(q.put,xrange(1,65535)) threads = [threading.Thread(target=worker) for i in xrange(100)] map(lambda x:x.start(),threads) q.join()
输出:
local open port : 22local open port : 25local open port : 111local open port : 631local open port : 35156local open port : 38929local open port : 51078
阅读全文
0 0
- python使用socket实现多线程端口扫描
- python 多线程 实现端口扫描
- Python 多线程端口扫描软件
- python多线程端口扫描程序
- Python多线程端口扫描工具
- 多线程实现端口扫描
- python实现端口扫描
- python实现端口扫描
- Python实现网段固定端口扫描
- 基于Python socket的端口扫描程序
- 使用python socket多线程实现大文件分发
- 多线程端口扫描
- 使用Java开发多线程端口扫描工具
- Python小练习-实现简单端口扫描~
- python端口扫描
- Python端口扫描
- 端口扫描工具python-nmap的使用
- 端口扫描工具python-nmap的使用
- sheepdog集群节点加入时,视图变化过程分析
- C 的字符串处理函数 strcpy() 与 c++的copy() 函数的不同之处
- 摄氏温度转华氏温度
- 树状数组维护区间最大值
- iptables
- python使用socket实现多线程端口扫描
- LeetCode 37. Sudoku Solver
- http协议:http协议理解
- CSDN博客添加自定义栏目
- samba安装配置《一》
- cocos2dx定时器详解
- 51nod 1184 第N个质数(二分+大区间求素数模板)
- 计算圆柱体体积
- AndroidStudio接入信鸽推送常见问题(附安卓接入视频教程)