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实时分析日志的一个小脚本分享
May 07 Python
分享一个简单的python读写文件脚本
Nov 25 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
Apr 18 Python
使用python判断jpeg图片的完整性实例
Jun 10 Python
利用python求积分的实例
Jul 03 Python
python pandas获取csv指定行 列的操作方法
Jul 12 Python
Python 实现文件读写、坐标寻址、查找替换功能
Sep 11 Python
opencv3/python 鼠标响应操作详解
Dec 11 Python
Python基础之字符串操作常用函数集合
Feb 09 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
Apr 29 Python
python 元组的使用方法
Jun 09 Python
利用Python如何画一颗心、小人发射爱心
Feb 21 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也可以?成Shell Script
2006/10/09 PHP
PHP中防止SQL注入实现代码
2011/02/19 PHP
PHP提取字符串中的图片地址[正则表达式]
2011/11/12 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
php使用array_chunk函数将一个数组分割成多个数组
2018/12/05 PHP
PHP常见加密函数用法示例【crypt与md5】
2019/01/27 PHP
jQuery Ajax 实例全解析
2011/04/20 Javascript
jQuery学习笔记 操作jQuery对象 CSS处理
2012/09/19 Javascript
JQuery获取各种宽度、高度(format函数)实例
2013/03/04 Javascript
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
Java/JS获取flash高宽的具体方法
2013/12/27 Javascript
jquery 通过name快速取值示例
2014/01/24 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
详解vue-cli3 中跨域解决方案
2019/04/10 Javascript
js实现打字小游戏
2019/12/17 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
2020/06/04 Javascript
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
[42:20]2014 DOTA2华西杯精英邀请赛5 24 DK VS NewBee
2014/05/25 DOTA
Python中交换两个元素的实现方法
2018/06/29 Python
python图像和办公文档处理总结
2019/05/28 Python
Django项目创建到启动详解(最全最详细)
2019/09/07 Python
Python3离线安装Requests模块问题
2019/10/13 Python
OpenCV+Python--RGB转HSI的实现
2019/11/27 Python
python实现图片二值化及灰度处理方式
2019/12/07 Python
python已协程方式处理任务实现过程
2019/12/27 Python
html5 canvas 画图教程案例分析
2012/11/23 HTML / CSS
linux面试题参考答案(5)
2016/11/05 面试题
运动会广播稿300字
2014/01/10 职场文书
个人实习生的自我评价
2014/02/16 职场文书
婚内分居协议书范文
2014/11/26 职场文书
2015年双拥工作总结
2015/04/08 职场文书
休假证明书
2015/06/24 职场文书
员工规章制度范本
2015/08/07 职场文书
辞职信怎么写?
2019/05/21 职场文书