python多线程扫描端口示例


Posted in Python onJanuary 16, 2014
# -*- coding: cp936 -*-
import socket
from threading import Thread,activeCount,Lock
from time import ctime
mutex = Lock()
class Loop(Thread):
    def __init__(self,ip,port,que):
        Thread.__init__(self)
        self.ip     = ip
        self.port   = port
        self.que    = que
    def run(self):
        global mutex
        try:
            client = socket.socket()
            indicator = client.connect_ex((self.ip,self.port))
            if mutex.acquire(1):
                if indicator == 0:
                    que.append(self.ip+'\t'+str(self.port))
                else:
                    print self.ip,'\t',str(self.port),'不可达'
                mutex.release()
        except:
            if mutex.acquire(1):
                print self.ip,'\t',str(self.port),'不可达'
                mutex.release()
class Main(Thread):
    def __init__(self,ip,que):
        Thread.__init__(self)
        self.ip  = ip
        self.que = que
    def run(self):
        i = 0
        while i < 65536:
            if activeCount() <= 200:
                Loop(ip=self.ip,port=i,que=self.que).start()
                i = i + 1
if __name__ == '__main__':
    que = []
    ip = raw_input('IP=')
    main = Main(ip = ip,que = que)
    main.start()
    while True:
        if activeCount() <= 1 and main.isAlive() == False:
            break
    print ''
    f = open('portOpen.py','a')
    f.write("'''")
    f.write(ctime()+'\n')
    f.flush()
    for i in range(0,len(que)):
        print que[i]
        f.write('\t'+que[i]+'\n')
        f.flush()
    f.write("'''")
    f.close()
    raw_input()
'''Mon Jan 13 07:12:53 2014
 localhost 135
 localhost 1028
 localhost 8048
 localhost 8080
 localhost 8181
 localhost 8730
 localhost 12040
 localhost 12897
 localhost 18040
 localhost 18611
''''''Tue Jan 14 10:04:58 2014
 localhost 135
 localhost 1028
 localhost 8048
 localhost 8080
 localhost 8181
 localhost 12897
 localhost 18040
 localhost 18611
'''
Python 相关文章推荐
Python greenlet实现原理和使用示例
Sep 24 Python
python实现带声音的摩斯码翻译实现方法
May 20 Python
python数组过滤实现方法
Jul 27 Python
Python中内置的日志模块logging用法详解
Jul 12 Python
Python中str is not callable问题详解及解决办法
Feb 10 Python
浅谈tensorflow中几个随机函数的用法
Jul 27 Python
python根据list重命名文件夹里的所有文件实例
Oct 25 Python
从numpy数组中取出满足条件的元素示例
Nov 26 Python
判断Threading.start新线程是否执行完毕的实例
May 02 Python
使用 django orm 写 exists 条件过滤实例
May 20 Python
Python pip安装第三方库实现过程解析
Jul 09 Python
Python为何不支持switch语句原理详解
Oct 21 Python
python发送arp欺骗攻击代码分析
Jan 16 #Python
分析python服务器拒绝服务攻击代码
Jan 16 #Python
python获取豆瓣电影简介代码分享
Jan 16 #Python
linux系统使用python获取cpu信息脚本分享
Jan 15 #Python
linux系统使用python监测系统负载脚本分享
Jan 15 #Python
linux系统使用python获取内存使用信息脚本分享
Jan 15 #Python
linux系统使用python监测网络接口获取网络的输入输出
Jan 15 #Python
You might like
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
php中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
Javascript Global对象
2009/08/13 Javascript
JS 获取span标签中的值的代码 支持ie与firefox
2009/08/24 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
2013/06/05 Javascript
用js实现输入提示(自动完成)的实例代码
2013/06/14 Javascript
关闭ie窗口清除Session的解决方法
2014/01/10 Javascript
中文输入法不触发onkeyup事件的解决办法
2014/07/09 Javascript
了不起的node.js读书笔记之node的学习总结
2014/12/22 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
2016/02/25 Javascript
jQuery实现的网格线绘制方法
2016/06/20 Javascript
jQuery命名空间与闭包用法示例
2017/01/12 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
js getBoundingClientRect使用方法详解
2019/07/17 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
vue实现数字滚动效果
2020/06/29 Javascript
Python基于Floyd算法求解最短路径距离问题实例详解
2018/05/16 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
python logging模块书写日志以及日志分割详解
2019/07/22 Python
python3实现mysql导出excel的方法
2019/07/31 Python
python 判断一组数据是否符合正态分布
2020/09/23 Python
HTML5 声明兼容IE的写法
2011/05/16 HTML / CSS
新加坡航空官方网站:Singapore Airlines
2016/10/13 全球购物
为什么使用接口?
2014/08/13 面试题
必须要使用游标的SQL语句有那些
2012/05/07 面试题
教师旷工检讨书
2014/01/18 职场文书
多属性、多分类MySQL模式设计
2021/04/05 MySQL
CKAD认证中部署k8s并配置Calico插件
2022/03/31 Servers
Win11右下角图标点了没反应怎么办?Win11点击右下角图标无反应解决方法汇总
2022/07/07 数码科技