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

作者:Cod_erL 时间:2023-02-25 07:22:25 

本文实例讲述了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程序设计有所帮助。

来源:https://blog.csdn.net/u014510302/article/details/79837284

标签:Python,IP,端口扫描,工具类
0
投稿

猜你喜欢

  • vbScript on error resume next容错使用心得

    2010-06-26 19:28:00
  • MySQL数据库事务隔离级别详解

    2024-01-26 12:34:03
  • PHP邮件发送类PHPMailer用法实例详解

    2023-11-19 16:31:17
  • Python实现读取字符串按列分配后按行输出示例

    2023-08-07 19:39:14
  • python打印异常信息的两种实现方式

    2023-11-17 15:37:41
  • 利用PHP实现递归删除链表元素的方法示例

    2024-04-23 09:09:41
  • python之链表的反转方式

    2022-02-08 10:20:06
  • Python面向对象class类属性及子类用法分析

    2021-07-22 03:04:46
  • 详解Django+Uwsgi+Nginx的生产环境部署

    2022-10-30 10:54:17
  • Insert into与AddNew哪一个更好?

    2009-10-28 18:30:00
  • MySQL InnoDB 锁的相关总结

    2024-01-18 16:14:55
  • Python数据结构队列解决约瑟夫斯问题

    2022-01-07 03:20:53
  • python冒泡排序算法的实现代码

    2021-09-08 03:48:27
  • python中关于时间和日期函数的常用计算总结(time和datatime)

    2022-01-02 05:50:08
  • Windows10下安装解压版MySQL教程图文详解

    2024-01-12 20:40:57
  • js实现的xml对象转json功能示例

    2024-04-19 10:41:59
  • Python数据分析之双色球基于线性回归算法预测下期中奖结果示例

    2021-12-04 12:39:55
  • MySQL 锁的相关知识总结

    2024-01-13 22:07:12
  • Javascript 每日测试 - 第五期 callee及function

    2008-07-10 13:22:00
  • MySQL数据库只监听某个特定地址的方法

    2008-12-05 16:11:00
  • asp之家 网络编程 m.aspxhome.com