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 相关文章推荐
asyncio 的 coroutine对象 与 Future对象使用指南
Sep 11 Python
浅谈python中copy和deepcopy中的区别
Oct 23 Python
python实现感知器算法(批处理)
Jan 18 Python
Python对HTML转义字符进行反转义的实现方法
Apr 28 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
Jul 04 Python
Python中的上下文管理器相关知识详解
Sep 19 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
Nov 11 Python
Python数据分析pandas模块用法实例详解
Nov 20 Python
Python检测端口IP字符串是否合法
Jun 05 Python
Python 制作查询商品历史价格的小工具
Oct 20 Python
Python3使用Qt5来实现简易的五子棋小游戏
May 02 Python
Python中的 enumerate和zip详情
May 30 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
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
2014/05/04 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
2018/06/09 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
JavaScript字符串String和Array操作的有趣方法
2012/12/18 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
防止登录页面出现在frame中js代码
2014/07/22 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
2015/10/29 Javascript
Nodejs中crypto模块的安全知识讲解
2018/01/03 NodeJs
JS常见面试试题总结【去重、遍历、闭包、继承等】
2019/08/27 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
javascript自定义右键菜单插件
2019/12/16 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
微信小程序视频弹幕发送功能的实现
2020/12/28 Javascript
Python使用metaclass实现Singleton模式的方法
2015/05/05 Python
python爬取拉勾网职位数据的方法
2018/01/24 Python
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
用Python将mysql数据导出成json的方法
2018/08/21 Python
python如何创建TCP服务端和客户端
2018/08/26 Python
Python I/O与进程的详细讲解
2019/03/08 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
Python 用三行代码提取PDF表格数据
2019/10/13 Python
Django之form组件自动校验数据实现
2020/01/14 Python
使用Python操作ArangoDB的方法步骤
2020/02/02 Python
美国滑板店:Tactics
2020/11/08 全球购物
团日活动策划书
2014/02/01 职场文书
办理信用卡工作证明
2014/09/30 职场文书
学生逃课检讨书1000字
2014/10/20 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
英语辞职信范文
2015/02/28 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书
MySQL删除和插入数据很慢的问题解决
2021/06/03 MySQL
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL
alibaba seata服务端具体实现
2022/02/24 Java/Android