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 相关文章推荐
Python continue语句用法实例
Mar 11 Python
Python 自动补全(vim)
Nov 30 Python
在Python中使用dict和set方法的教程
Apr 27 Python
Python urllib、urllib2、httplib抓取网页代码实例
May 09 Python
在Python中定义和使用抽象类的方法
Jun 30 Python
Python编程实现二叉树及七种遍历方法详解
Jun 02 Python
对Python 3.2 迭代器的next函数实例讲解
Oct 18 Python
Python-jenkins模块获取jobs的执行状态操作
May 12 Python
利用python如何实现猫捉老鼠小游戏
Dec 04 Python
python unichr函数知识点总结
Dec 16 Python
python神经网络编程之手写数字识别
May 08 Python
教你怎么用python实现字符串转日期
May 24 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对xml文件的增删改查操作实现方法分析
2017/05/19 PHP
javascript 动态生成私有变量访问器
2009/12/06 Javascript
jQuery异步验证用户名是否存在示例代码
2014/05/21 Javascript
原生js实现fadein 和 fadeout淡入淡出效果
2014/06/05 Javascript
jquery实现公告翻滚效果
2015/02/27 Javascript
JavaScript生成随机数的4种自定义函数分享
2015/02/28 Javascript
JS实现控制表格行文本对齐的方法
2015/03/30 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
js实现鼠标点击文本框自动选中内容的方法
2015/08/20 Javascript
JavaScript仿支付宝密码输入框
2015/12/29 Javascript
jQuery过滤选择器用法示例
2016/09/12 Javascript
WebPack基础知识详解
2017/01/16 Javascript
vue v-model表单控件绑定详解
2017/05/17 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
2019/04/17 Javascript
如何使用JavaScript检测空闲的浏览器选项卡
2020/05/28 Javascript
tensorflow识别自己手写数字
2018/03/14 Python
python+Splinter实现12306抢票功能
2018/09/25 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
2019/06/28 Python
pytorch之Resize()函数具体使用详解
2020/02/27 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
HTML5 canvas基本绘图之绘制阴影效果
2016/06/27 HTML / CSS
HTML5 body设置自适应全屏
2020/05/07 HTML / CSS
全球性的奢侈品梦工厂:Forzieri(福喜利)
2019/02/20 全球购物
西班牙高科技产品购物网站:MejorDeseo
2019/09/08 全球购物
财产公证书
2014/04/10 职场文书
领导班子三严三实对照检查材料
2014/09/25 职场文书
麦田里的守望者读书笔记
2015/06/30 职场文书
九年级历史教学反思
2016/02/19 职场文书
多人股份制合作协议书
2016/03/19 职场文书
致毕业季:你如何做好自己的职业生涯规划书?
2019/07/01 职场文书
详解CSS故障艺术
2021/05/25 HTML / CSS
postgreSQL数据库基础知识介绍
2022/04/12 PostgreSQL