Python实现的IP端口扫描工具类示例


Posted in Python onFebruary 15, 2019

本文实例讲述了Python实现的IP端口扫描工具类。分享给大家供大家参考,具体如下:

去年服务器老是被攻击,每次上线之后,上线的人急急忙忙下班,忘记关闭一些端口。导致有次服务器被攻破。损失严重。

这段时间再做仪器对接,把医疗器械对接到我们SAAS平台,有些仪器是通过网线进行数据传输的。通过网线进行数据传输,无非就是通过端口号进行传输交互,但是找不到说明书,国内搞仪器对接开发的也很少,所以网上开源的或者介绍的东西很少,对于我们来说,仪器是个黑盒,想要拿到里面的东西,还要自己去摸索,去试验,比较浪费时间,脑子一转就想到了之前自己写的端口扫描工具,连到一个局域网,一键找到开放的端口,直接端口链接上,拿到数据,分分钟解决了拿数据的问题。

所以好东西要分享出来。

目前我发现的用处:

1,服务器上线之后的扫描工具,那些端口要开放那些不能开放,扫一扫就知道了。

2,当确定对方是通过端口传输的,但是不知道端口号,是人是妖,你也扫一扫(用端口号去传输数据比蓝牙什么的快多了,只要你的数据足够大,上传和下载带宽可以打满你的手机所支持的带宽)。

3,想看看自己的手机那些端口号被开放了,在设置中找到自己的IP 或者下载个命令行执行工具 ifconfig下就知道了。

注意的是 不同的电脑不同的CPU 每次最多创建的线程是不一样的,可能创建线程过多,会报错,所以如果报错,自己修改下,每次扫描的个数,再剪成更小的段就可以了,或者再把seelp的时间设置的更长一些,保证能把0-65536之间的端口扫描一遍就可以了

# -*- coding:utf8 -*-
import socket, time, thread
import os
from time import sleep
socket.setdefaulttimeout(1)
def socket_port(ip,port):
 try:
  if port>=65535:
   return 
  s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  result=s.connect_ex((ip,port))
  if result==0:
   lock.acquire()
   print ip,u':',port,u'端口开放'
   lock.release()
  s.close()
 except Exception,e:
  pass
def ip_scan(ip):
 """
 输入IP,扫描IP的0-65534端口情况
 """
 try:
  print u'开始扫描 %s' % ip
  start_time=time.time() 
  for j in range(0,660):
   for i in range(j*100,100*(j+1)):
    thread.start_new_thread(socket_port,(ip,int(i)))
   sleep(0.1)#休眠 防止线程创建的过多报错(can not create new start thread)
  print u'扫描端口完成,总共用时 :%.2f' %(time.time()-start_time)
 except Exception,e :
  print u'扫描ip出错'
if __name__=='__main__':
 lock=thread.allocate_lock()
 ip_scan('192.168.3.37')

运行结果:

Python实现的IP端口扫描工具类示例

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python进程与线程操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
pyqt4教程之messagebox使用示例分享
Mar 07 Python
Python中的字符串替换操作示例
Jun 27 Python
python多进程和多线程究竟谁更快(详解)
May 29 Python
Python实现FTP文件传输的实例
Jul 07 Python
基于django ManyToMany 使用的注意事项详解
Aug 09 Python
Python绘制股票移动均线的实例
Aug 24 Python
Pandas DataFrame中的tuple元素遍历的实现
Oct 23 Python
python文件和文件夹复制函数
Feb 07 Python
python实现超级马里奥
Mar 18 Python
python zip,lambda,map函数代码实例
Apr 04 Python
python分布式爬虫中消息队列知识点详解
Nov 26 Python
Python 避免字典和元组的多重嵌套问题
Jul 15 Python
Python标准库使用OrderedDict类的实例讲解
Feb 14 #Python
Python从文件中读取数据的方法讲解
Feb 14 #Python
python爬取cnvd漏洞库信息的实例
Feb 14 #Python
基于python历史天气采集的分析
Feb 14 #Python
Python 实现域名解析为ip的方法
Feb 14 #Python
解决python Markdown模块乱码的问题
Feb 14 #Python
pyqt远程批量执行Linux命令程序的方法
Feb 14 #Python
You might like
php遍历文件夹和文件列表示例分享
2014/03/11 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
php中照片旋转 (orientation) 问题的正确处理
2017/02/16 PHP
jquery分页插件AmSetPager(自写)
2013/04/15 Javascript
js实现防止被iframe的方法
2015/07/03 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
轻松实现jquery手风琴效果
2016/01/14 Javascript
Angularjs整合微信UI(weui)
2016/03/15 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
2016/06/08 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
基于jQuery实现数字滚动效果
2017/01/16 Javascript
react实现pure render时bind(this)隐患需注意!
2017/03/09 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
2017/11/17 Javascript
微信小程序商品详情页的底部弹出框效果
2020/11/16 Javascript
jQuery 选择方法及$(this)用法实例分析
2020/05/19 jQuery
微信小程序点击滚动到指定位置的实现
2020/05/22 Javascript
Python中计算三角函数之cos()方法的使用简介
2015/05/15 Python
Python中的FTP通信模块ftplib的用法整理
2016/07/08 Python
python 根据pid杀死相应进程的方法
2017/01/16 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
对pyqt5之menu和action的使用详解
2019/06/20 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
在python中logger setlevel没有生效的解决
2020/02/21 Python
django使用graphql的实例
2020/09/02 Python
css3实现针线缝合效果(图解步骤)
2013/02/04 HTML / CSS
Troy-Bilt官网:草坪割草机、吹雪机、分蘖机等
2019/02/19 全球购物
行政总经理岗位职责
2013/12/05 职场文书
公司人力资源的自我评价
2014/01/02 职场文书
经典婚礼主持开场白
2014/03/13 职场文书
三严三实心得体会范文
2014/10/13 职场文书
升职自荐信范文
2015/03/27 职场文书
研究生学习计划书应该怎么写?
2019/09/10 职场文书
CSS 文字装饰 text-decoration & text-emphasis 详解
2021/04/06 HTML / CSS