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中使用wxPython开发的一个简易笔记本程序实例
Feb 08 Python
Python3访问并下载网页内容的方法
Jul 28 Python
详解python进行mp3格式判断
Dec 23 Python
python爬虫的工作原理
Mar 05 Python
浅谈Python使用Bottle来提供一个简单的web服务
Dec 27 Python
微信跳一跳python辅助脚本(总结)
Jan 11 Python
Python 中的Selenium异常处理实例代码
May 03 Python
Python 运行.py文件和交互式运行代码的区别详解
Jul 02 Python
Python3爬虫关于代理池的维护详解
Jul 30 Python
Python通过fnmatch模块实现文件名匹配
Sep 30 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
Dec 07 Python
Python基础之数据结构详解
Apr 28 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容易忘记的知识点分享
2013/04/30 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
PHP解决高并发的优化方案实例
2020/12/10 PHP
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
jquery中的过滤操作详细解析
2013/12/02 Javascript
javascript闭包入门示例
2014/04/30 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
json的使用小结
2016/06/08 Javascript
jQuery实现的导航下拉菜单效果
2016/07/04 Javascript
jQuery与JavaScript节点创建方法的对比
2016/11/18 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
vue项目前端错误收集之sentry教程详解
2019/05/27 Javascript
[00:33]2016完美“圣”典风云人物:Sccc宣传片
2016/12/03 DOTA
[41:52]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第二场 2月22日
2021/03/11 DOTA
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
部署Python的框架下的web app的详细教程
2015/04/30 Python
python读写json文件的简单实现
2017/04/11 Python
python linecache 处理固定格式文本数据的方法
2019/01/08 Python
提高python代码运行效率的一些建议
2020/09/29 Python
25个CSS3动画按钮和菜单教程分享
2012/10/03 HTML / CSS
比较基础的php面试题及答案-填空题
2014/04/26 面试题
shell程序中如何注释
2012/02/17 面试题
个人求职简历的自我评价范文
2013/10/09 职场文书
商务日语专业毕业生求职信
2013/10/26 职场文书
本科毕业生的求职信范文
2013/11/20 职场文书
实习心得体会
2014/01/02 职场文书
学校党员对照检查材料
2014/08/28 职场文书
离婚协议书怎么写
2014/09/12 职场文书
2014党员干部四风问题对照检查材料思想汇报
2014/09/24 职场文书
一篇带你入门Java垃圾回收器
2021/06/16 Java/Android
Ajax实现异步加载数据
2021/11/17 Javascript
Android学习之BottomSheetDialog组件的使用
2022/06/21 Java/Android