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使用win32com在百度空间插入html元素示例
Feb 20 Python
Python中处理字符串的相关的len()方法的使用简介
May 19 Python
利用Python实现颜色色值转换的小工具
Oct 27 Python
Python网络爬虫与信息提取(实例讲解)
Aug 29 Python
python爬虫基本知识
Mar 05 Python
在pycharm中使用git版本管理以及同步github的方法
Jan 16 Python
Django csrf 两种方法设置form的实例
Feb 03 Python
Python获取对象属性的几种方式小结
Mar 12 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
Apr 03 Python
python中的yield from语法快速学习
Nov 06 Python
Python WebSocket长连接心跳与短连接的示例
Nov 24 Python
python编程项目中线上问题排查与解决
Nov 01 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
一个简单的自动发送邮件系统(一)
2006/10/09 PHP
prototype Element学习笔记(篇二)
2008/10/26 Javascript
Mootools 1.2教程 Tooltips
2009/09/15 Javascript
jQuery1.6 使用方法一
2011/11/23 Javascript
JS实现的一个简单的Autocomplete自动完成例子
2014/04/16 Javascript
js propertychange和oninput事件
2014/09/28 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
jquery实现增加删除行的方法
2015/02/03 Javascript
利用JavaScript实现栈的数据结构示例代码
2017/08/02 Javascript
vue实现多个元素或多个组件之间动画效果
2018/09/25 Javascript
Vue 动态组件components和v-once指令的实现
2019/08/30 Javascript
基于html+css+js实现简易计算器代码实例
2020/02/28 Javascript
vue基于Echarts的拖拽数据可视化功能实现
2020/12/04 Vue.js
js+for循环实现字符串自动转义的代码(把后面的字符替换前面的字符)
2020/12/24 Javascript
粗略分析Python中的内存泄漏
2015/04/23 Python
Python实现PS图像调整黑白效果示例
2018/01/25 Python
Django中redis的使用方法(包括安装、配置、启动)
2018/02/21 Python
使用python的pandas库读取csv文件保存至mysql数据库
2018/08/20 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
python获取array中指定元素的示例
2019/11/26 Python
解决python父线程关闭后子线程不关闭问题
2020/04/25 Python
使用TensorBoard进行超参数优化的实现
2020/07/06 Python
如何基于Python pygame实现动画跑马灯
2020/11/18 Python
英国图书音像网站:Hive.co.uk(图书、电子书、DVD、蓝光、音乐CD等)
2017/10/16 全球购物
美国医疗用品、医疗设备和家庭保健用品商店:Medical Supply Depot
2018/07/08 全球购物
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
C#笔试题集合
2013/06/21 面试题
大学军训感言
2014/01/10 职场文书
供应链金融服务方案
2014/05/25 职场文书
计算机网络及管理学专业求职信
2014/06/05 职场文书
助学贷款贫困证明
2014/09/23 职场文书
个人四风问题对照检查材料
2014/10/01 职场文书
5.12护士节活动总结
2015/02/10 职场文书
2015年秋季运动会加油稿
2015/07/22 职场文书
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs