python 实现端口扫描工具


Posted in Python onDecember 18, 2020
# 简单的端口扫描工具
# 作者: Charles
# 公众号: Charles的皮卡丘
import time
import socket
import threading

# 判断是否为正确的IP地址。
def isIP(ip):
  ip_addr = ip.split('.')
  if len(ip_addr) != 4:
   return False
  for ipnum in ip_addr:
   if not (0 <= int(ipnum) < 255):
     return False
  else:
   return True


# 端口扫描工具
class scanThread(threading.Thread):
  def __init__(self, ip, port_min=0, port_max=65535):
   # 初始化。
   threading.Thread.__init__(self)
   self.port_max = port_max
   self.port_min = port_min
   self.ip = ip
   # assert isinstance(int,self.port_min) and isinstance(int,self.port_max)
  # 重写run
  def run(self):
   return self.__checker()
  # 检测
  def __checker(self):
   
   for port in range(self.port_min,self.port_max):
     self.__connect(port)
  # 连接
  def __connect(self,port):
   socket.setdefaulttimeout(1)
   self.sock = socket.socket()
   try:
     start_time = time.time()
     self.sock.connect((self.ip,port))
     end_time = time.time()
     connect_time = int(start_time - end_time)
     info = 'Find --> [IP]: %s, [PORT]: %s, [Connect Time]: %d' % (self.ip, port, connect_time)
     print(info)
     self.__save(info)
     self.sock.close()
   except:
     # print('出错误了')
     self.sock.close()
  def __save(self,info):
   try:
     with open('results.txt', 'a') as f:
      f.write(info + '\n')
   except:
     print('写文件出现了问题')
     time.sleep(0.1)

if __name__ == '__main__':
  # 输入IP地址。
  ip = input('Input IP(example <xxx.xxx.xxx.xxx>):\n')
  print(isIP(ip))
  while not isIP(ip):
   ip = input('请输入正确的IP地址:\n')
  # 输入最小端口、
  port_min = input('需要扫描的最小端口为:')
  while not (0 <= int(port_min) < 65535):
   port_min = input('请输入正确的需要扫描的最小端口:')
  port_max = input('需要扫描的最大端口为(65535):')
  while not (0 <= int(port_min) < int(port_max) < 65535):
   port_min = input('请输入正确的需要扫描的最大端口(65535):')
  num = 8
  port_max = int(port_max)
  port_min = int(port_min)
  interval = (port_max - port_min) // num
  for i in range(interval):
   scanThread(ip, i * num, (i + 1) * num).start()

以上就是python 实现端口扫描工具的详细内容,更多关于python 端口扫描工具的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
一步步解析Python斗牛游戏的概率
Feb 12 Python
Python3连接MySQL(pymysql)模拟转账实现代码
May 24 Python
浅谈numpy库的常用基本操作方法
Jan 09 Python
python画图系列之个性化显示x轴区段文字的实例
Dec 13 Python
python中的print()输出
Apr 12 Python
python将字符串转变成dict格式的实现
Nov 18 Python
tensorflow 查看梯度方式
Feb 04 Python
Python无头爬虫下载文件的实现
Apr 02 Python
Python3交互式shell ipython3安装及使用详解
Jul 11 Python
python3 循环读取excel文件并写入json操作
Jul 14 Python
python 实现一个简单的线性回归案例
Dec 17 Python
详解Open Folder as PyCharm Project怎么添加的方法
Dec 29 Python
Python-split()函数实例用法讲解
Dec 18 #Python
Python+Opencv实现把图片、视频互转的示例
Dec 17 #Python
python 利用jieba.analyse进行 关键词提取
Dec 17 #Python
Python基础进阶之海量表情包多线程爬虫功能的实现
Dec 17 #Python
python 实现一个简单的线性回归案例
Dec 17 #Python
python BeautifulSoup库的安装与使用
Dec 17 #Python
python中翻译功能translate模块实现方法
Dec 17 #Python
You might like
PHP抓取及分析网页的方法详解
2016/04/26 PHP
windows7配置Nginx+php+mysql的详细教程
2016/09/04 PHP
Linux下快速搭建php开发环境
2017/03/13 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
2018/08/15 PHP
PHP chunk_split()函数讲解
2019/02/12 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
2019/10/11 PHP
破除网页鼠标右键被禁用的绝招大全
2006/12/27 Javascript
在IE中调用javascript打开Excel的代码(downmoon原作)
2007/04/02 Javascript
js获取元素在浏览器中的绝对位置
2010/07/24 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
javascript的动态加载、缓存、更新以及复用(一)
2014/06/09 Javascript
javascript 获取HTML DOM父、子、临近节点
2014/06/16 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
EasyUi combotree 实现动态加载树节点
2016/04/01 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
JavaScript中校验银行卡号的实现代码
2016/12/19 Javascript
js实现图片左右滚动效果
2017/02/27 Javascript
jQuery阻止移动端遮罩层后页面滚动
2017/03/15 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
浅谈angular4 ng-content 中隐藏的内容
2017/08/18 Javascript
从对象列表中获取一个对象的方法,依据关键字和值
2017/09/20 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
Python的装饰器使用详解
2017/06/26 Python
Python随机函数random()使用方法小结
2018/04/29 Python
Python模块的定义,模块的导入,__name__用法实例分析
2020/01/07 Python
python第三方库学习笔记
2020/02/07 Python
浅谈python 调用open()打开文件时路径出错的原因
2020/06/05 Python
Python判断字符串是否为合法标示符操作
2020/09/03 Python
Agoda西班牙:全球特价酒店预订
2017/06/03 全球购物
教学实验楼管理制度
2014/02/01 职场文书
致垒球运动员加油稿
2014/02/16 职场文书
国际贸易专业个人鉴定
2014/02/22 职场文书
党员岗位承诺口号大全
2014/03/28 职场文书
小学开学标语
2014/07/01 职场文书