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使用递归解决全排列数字示例
Feb 11 Python
Python利用Beautiful Soup模块创建对象详解
Mar 27 Python
Python多线程扫描端口代码示例
Feb 09 Python
PyQt4实现下拉菜单可供选择并打印出来
Apr 20 Python
Django rest framework实现分页的示例
May 24 Python
Python生成器generator用法示例
Aug 10 Python
numpy给array增加维度np.newaxis的实例
Nov 01 Python
python实现控制台打印的方法
Jan 12 Python
Python %r和%s区别代码实例解析
Apr 03 Python
Alpine安装Python3依赖出现的问题及解决方法
Dec 25 Python
Python日志打印里logging.getLogger源码分析详解
Jan 17 Python
python 装饰器重要在哪
Feb 14 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使用者状态管理功能的应用
2006/10/09 PHP
Memcache 在PHP中的使用技巧
2010/02/08 PHP
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
jquery tools系列 expose 学习
2009/09/06 Javascript
js获取url参数值的两种方式
2013/09/10 Javascript
javaScript中的this示例学习详解及工作原理
2014/01/13 Javascript
Node.js 学习笔记之简介、安装及配置
2015/03/03 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
2015/04/12 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
2015/09/17 Javascript
JS实现图片高亮展示效果实例
2015/11/24 Javascript
jQuery仿写百度百科的目录树
2017/01/03 Javascript
js禁止Backspace键使浏览器后退的实现方法
2017/09/01 Javascript
JS实现div模块的截图并下载功能
2017/10/17 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
2019/09/03 jQuery
Vue使用NProgress进度条的方法
2019/09/21 Javascript
vue-cli3 取消eslint校验代码的解决办法
2020/01/16 Javascript
微信小程序实现自定义动画弹框/提示框的方法实例
2020/11/06 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
[01:15:36]加油刀塔第二期网络版
2014/08/09 DOTA
python实现定制交互式命令行的方法
2014/07/03 Python
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
基于hashlib模块--加密(详解)
2017/06/21 Python
python2.7和NLTK安装详细教程
2018/09/19 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
2020/06/14 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
Python调用SMTP服务自动发送Email的实现步骤
2021/02/07 Python
CSS3动画:5种预载动画效果实例
2017/04/05 HTML / CSS
canvas实现扭蛋机动画效果的示例代码
2018/10/17 HTML / CSS
印度和世界各地的精美产品:Ikka Dukka
2018/02/12 全球购物
生日邀请函范文
2014/01/13 职场文书
运动会演讲稿50字
2014/08/25 职场文书
小学师德师风演讲稿
2014/09/02 职场文书
Django+Celery实现定时任务的示例
2021/06/23 Python
Java 在生活中的 10 大应用
2021/11/02 Java/Android