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程序设计有所帮助。
来源:https://blog.csdn.net/u014510302/article/details/79837284


猜你喜欢
- // 和PHP一样的时间戳格式化函数// @param {string} format 格式
- 缘由新手学习 Django 当配置好 HTML 页面后,就需要使用一些静态资源,如图片,JS 文件,CSS 样式等,但是 Django 里面
- 一、Python不同版本的类Python2.2之前是没有共同的祖先的,之后引入Object类,它是所有类的共同祖先类ObjectPython
- javascript实现翻页效果:<html> <head> <title>上下翻页看 - aspxho
- 合并在numpy中合并两个arraynumpy中可以通过concatenate,参数axis=0表示在垂直方向上合并两个数组,等价于np.v
- 一、异常处理在程序开发中如果遇到一些 不可预知的错误 或 你懒得做一些判断 时,可以选择用异常处理来做。import requestswhi
- 本文实例讲述了Yii2中SqlDataProvider用法。分享给大家供大家参考,具体如下:第一种方法:$totalCount = Yii:
- HTTP协议简介超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒
- 此问题是由于最新的pycharm在安装时自动装了vimVim插件 你可以在tools Vim emulator将对勾去掉就可以了。来源:ht
- 变量类型ECMAScript变量可能包含两种不同类型的数据值:基本类型和引用类型。基本类型基本类型指的是简单的数据段,5种基本数据类型:un
- 这个concatenate用于将矩阵合并,他将沿着已经存在的轴合并一个矩阵,相关参数有(a1, a2, ...), axis=0, out=
- 1 原理 2 检测步骤将参数空间(ρ,θ) 量化成m*n(m为ρ的等份数,n为θ的等份数)个单元,并设置累加器矩阵,初始值为0;对
- 我们经常见到很多网站留言系统的显示访客的IP地址都是隐藏了一部分,以达到隐蔽访客真实地理位置的功能。如:111.222.333.*,当然在系
- 如果你用SQL Server 2005 Management Studio建立函数或存储过程,你会注意到这些新窗口中都是模板。通常,你可以获
- 第一步:首先进入python安装目录下的 【scripts】.第二步:执行安装pyqt5的命令:python37 -m pip instal
- time简介世界上第一台计算机操作系统Unix是诞生于1970年,然后就开始了计算机的时间计算,所以我们计算机的时间是开始于1970年1月1
- 最近写毕业设计遇到一个问题,就是我从一个txt文件中逐个读取字符,并修改其中的内容后存到另一个txt文件中,如下图:字符替换规则是把所有的0
- 忘了在哪看到一位编程大牛调侃,他说程序员每天就做两件事,其中之一就是处理字符串。相信不少同学会有同感。几乎任何一种编程语言,都把字符串列为最
- 用pyinstaller打包的exe文件打开时,命令窗口一闪而过,并且未出现GUI界面,也看不到错误信息,然后去网上搜相关的信息,最多的两种
- 我要说的内容都是非常基础的内容,高手就免看了,如果看了欢迎给点意见啊。新手或者对低层还不是很了解的人可以看看,帮助理解与记忆。XMLHttp