Python实现的IP端口扫描工具类示例

 更新时间:2019年02月15日 08:47:08   作者:Cod_erL  
这篇文章主要介绍了Python实现的IP端口扫描工具类,结合实例形式分析了Python基于socket模块与多线程操作实现IP端口扫描的相关操作技巧,需要的朋友可以参考下

本文实例讲述了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相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python进程与线程操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • PyQt5 实现百度图片下载器GUI界面

    PyQt5 实现百度图片下载器GUI界面

    本文主要介绍了通过 Pyqt5 实现一个界面化的下载器,在通过网络请求实现各种类型的图片的下载。文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2021-12-12
  • 如何更优雅地写python代码

    如何更优雅地写python代码

    这篇文章主要介绍了如何更优雅地写python代码,我们写代码,往往还是按照其它语言的思维习惯来写,那样的写法不仅运行速度慢,代码读起来也费尽,给人一种拖泥带水的感觉,需要的朋友可以参考下
    2019-07-07
  • Django Auth应用实现用户身份认证

    Django Auth应用实现用户身份认证

    Django Auth 应用一般用在用户的登录注册上,用于判断当前的用户是否合法。本文将介绍Auth的另一个功能,即认证用户身份,感兴趣的同学可以关注一下
    2021-12-12
  • Python中NumPy的ufuncs函数实例

    Python中NumPy的ufuncs函数实例

    这篇文章主要介绍了Python中NumPy的ufuncs函数实例,NumPy是一个开源的Python科学计算库,使用NumPy,就可以很自然地使用数组和矩阵,本文主要介绍Python Numpy ufuncs通用函数,需要的朋友可以参考下
    2023-07-07
  • Python实现绘制Matlab格式的地图边框的示例代码

    Python实现绘制Matlab格式的地图边框的示例代码

    这篇文章主要为大家详细介绍了如何利用Python实现绘制Matlab格式的地图边框,文中的示例代码讲解详细,感兴趣的小伙伴可以动手尝试一下
    2022-09-09
  • Python xml、字典、json、类四种数据类型如何实现互相转换

    Python xml、字典、json、类四种数据类型如何实现互相转换

    这篇文章主要介绍了Python xml、字典、json、类四种数据类型如何实现互相转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • python实现的一个p2p文件传输实例

    python实现的一个p2p文件传输实例

    这篇文章主要介绍了python实现的一个p2p文件传输实例,文中用来解决多台服务器维护文件同步问题,需要的朋友可以参考下
    2014-06-06
  • 零基础写python爬虫之爬虫框架Scrapy安装配置

    零基础写python爬虫之爬虫框架Scrapy安装配置

    Scrapy是一个使用Python编写的,轻量级的,简单轻巧,并且使用起来非常的方便。使用Scrapy可以很方便的完成网上数据的采集工作,它为我们完成了大量的工作,而不需要自己费大力气去开发。
    2014-11-11
  • 基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)

    基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)

    Motor是一个异步mongodb driver,支持异步读写mongodb。它通常用在基于Tornado的异步web服务器中。这篇文章主要介绍了基于python3.7利用Motor来异步读写Mongodb提高效率,需要的朋友可以参考下
    2020-04-04
  • Python中的字符串替换操作示例

    Python中的字符串替换操作示例

    这篇文章主要介绍了Python中的字符串替换操作示例,包括一则使用字符串模板string.Template的例子及一则使用正则表达式的例子,需要的朋友可以参考下
    2016-06-06

最新评论