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 traceback的优雅处理
Aug 31 Python
Django如何自定义分页
Sep 25 Python
python3中eval函数用法使用简介
Aug 02 Python
Python实现Singleton模式的方式详解
Aug 08 Python
用python生成与调用cntk模型代码演示方法
Aug 26 Python
python集合删除多种方法详解
Feb 10 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
Mar 09 Python
在Mac中PyCharm配置python Anaconda环境过程图解
Mar 11 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
May 03 Python
python 贪心算法的实现
Sep 18 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
Jan 12 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
Jan 29 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
Email+URL的判断和自动转换函数
2006/10/09 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
2016/07/23 PHP
Laravel框架基于ajax实现二级联动功能示例
2019/01/17 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
网上抓的一个特效
2007/05/11 Javascript
两个DIV等高的JS的实现代码
2007/12/23 Javascript
Mootools 1.2教程(3) 数组使用简介
2009/09/14 Javascript
zShowBox 图片放大展示jquery版 兼容性
2011/09/24 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
2012/09/14 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
JQuery+EasyUI轻松实现步骤条效果
2016/02/22 Javascript
JavaScript数组实现数据结构中的队列与堆栈
2016/05/26 Javascript
JavaScript中style.left与offsetLeft的使用及区别详解
2016/06/08 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
vue.js源代码core scedule.js学习笔记
2017/07/03 Javascript
JS简单实现父子窗口传值功能示例【未使用iframe框架】
2017/09/20 Javascript
layui框架中layer父子页面交互的方法分析
2017/11/15 Javascript
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
javascript的惯性运动实现代码实例
2019/09/07 Javascript
浅谈Vue3 Composition API如何替换Vue Mixins
2020/04/29 Javascript
JavaScript语句错误throw、try及catch实例解析
2020/08/18 Javascript
js动态添加带圆圈序号列表的实例代码
2021/02/18 Javascript
基于打开pycharm有带图片md文件卡死问题的解决
2020/04/24 Python
如何使用Cython对python代码进行加密
2020/07/08 Python
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
2013/08/02 HTML / CSS
日本民宿预约平台:STAY JAPAN
2017/07/01 全球购物
文明宿舍获奖感言
2014/02/07 职场文书
经典洗发水广告词
2014/03/13 职场文书
运动会口号16字
2014/06/07 职场文书
煤矿安全协议书
2014/08/20 职场文书
教师业务学习材料
2014/12/16 职场文书
财务出纳岗位职责
2015/03/31 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书
《你在为谁工作》心得体会(共8篇)
2016/01/20 职场文书
Centos系统通过Docker安装并搭建MongoDB数据库
2022/04/12 MongoDB