python实现的多线程端口扫描功能示例
作者:雪峰流云 发布时间:2023-02-02 10:18:29
标签:python,多线程,端口扫描
本文实例讲述了python实现的多线程端口扫描功能。分享给大家供大家参考,具体如下:
下面的程序给出了对给定的ip主机进行多线程扫描的Python代码
#!/usr/bin/env python
#encoding: utf-8
import socket, sys, thread, time
openPortNum = 0
socket.setdefaulttimeout(3)
def usage():
print '''''Usage:
Scan the port of one IP: python port_scan_multithread.py -o <ip>
Scan the port of one IP: python port_scan_multithread.py -m <ip1, ip2, ip3, ip4 ...>
'''
print 'Exit'
sys.exit(1)
def socket_port(ip, PORT):
global openPortNum
if PORT > 65535:
print 'Port scanning beyond the port range, interrupt to scan'
sys.exit(1)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = s.connect_ex((ip, PORT))
if(result == 0):
print ip, PORT,'is open'
openPortNum += 1
s.close()
def start_scan(IP):
for port in range(0, 65535+1):
thread.start_new_thread(socket_port, (IP, int(port)))
time.sleep(0.006)
if __name__ == '__main__':
t = 0
if len(sys.argv)<2 or sys.argv[1] == '-h':
usage()
elif sys.argv[1] == '-o':
ONE_IP = raw_input('Please input ip of scanning: ')
t = time.time()
start_scan(ONE_IP)
elif sys.argv[1] == '-m':
MANY_IP = raw_input('Please input many ip of scanning: ')
IP_SEG = MANY_IP.split(',')
t = time.time()
for i in IP_SEG:
start_scan(i)
print 'total open port is %s, scan used time is: %f ' % (openPortNum, time.time()-t)
运行效果图
希望本文所述对大家Python程序设计有所帮助。
0
投稿
猜你喜欢
- 误区10.数据库镜像在故障发生后,马上就能发现 错误 市面上大肆宣传数据库镜像技术可以在故障发生后,立即检测到错误并进行故障转移。 但事实并
- 设置自动生成作者信息1、file->settings->Editor->file and code templates-&
- 本文介绍FCKeditor在Java环境下的使用方法。一、简介 功能:所见即所得,支持图片和Flash,工具栏可自由配置,使用简单兼容性:I
- Spark Streaming VS Structured StreamingSpark Streaming是Spark最初的流处理框架,使
- 1. 事务介绍MVCC之前,先介绍下事务:事务是为了保证数据库中数据的完整性和一致性。事务的4个基本要素:原子性(Atomicity):要么
- 结果然后直接放源码:import cv2 as cvsource = cv.imread("zhaopian.jpg")
- W3C发布了WCAG 2.0提案(Web Content Accessibility Guidelines 网页内容无障碍指南),大概为了实
- urllib包和http包都是面向HTTP协议的。其中urllib主要用于处理 URL,使用urllib操作URL可以像使用和打开本地文件一
- 前言大家好,我是辣条相信大家都能感觉到最近天气的多变,好几次出门半路天气转变。辣条也深受其扰,直接给我整感冒,就差被隔离起来了,既然天气我没
- 本文实例讲述了python实现根据ip地址反向查找主机名称的方法。分享给大家供大家参考。具体如下:import sys, sockettry
- 前言栈、队列和优先级队列都是非常基础的数据结构。Python作为一种“编码高效”的语言,对这些基础的数据结构都有比较好的实现。在业务需求开发
- 原以为在IronPython中使用MySQL是一件很容易的事情,即使有麻烦,也可以改变路径,加载Python下的MySQL模块。事实证明,这
- 摘 要: 恢复丢失的数据库文件在很大程度上取决于所采用的备份策略。本文从恢复的灵活性出发,对Oracle8数据库的备份及恢复策略进行了探讨,
- 近来学习tp5的过程中,项目中有个发帖功能,选择主题图片。如下:利用原始的文件上传处理,虽然通过原始js语句能实时显示上传图片,但是这样的话
- 绘制直线图,确定x范围和y的范围代码:import matplotlib.pyplot as pltimport numpy as npxp
- gzip文件读写的时候需要用到Python的gzip模块。具体使用如下:# -*- coding: utf-8 -*-import gzip
- 1:GET访问 浏览器 认为 是等幂的就是 一个相同的URL 只有一个结果[相同是指 整个URL字符串完全匹配]所以 第二次访问的时候 如果
- 在使用SQL Server 的过程,中由于经常需要从多个不同地点将数据集中起来或向多个地点复制数据,所以数据的导出,导入是极为常见的操作.我
- vim有各种强大的插件,这不仅归功于其提供的用来编写插件的脚本语言vimL,还得益于它良好的接口实现,从而支持python等语言编写插件。当
- 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期、月份、状态等。Python 的原生类型(Built