首页
python
Win桌面应用自动化pywinauto
pywinauto遍历展示程序的所有菜单项
Python3使用串口
Python字符串处理
Python3实现配置文件差异对比(键值对key=value的形式)
正则
正则匹配两个字符之间的字符串
正则提取markdown中图片链接
正则表达式基本知识
字符串-正则实例
Python生成8位随机字符串的一些方法
python3批量ping检测
python3检测一批主机ip的tcp端口
Python3--DNS
3D人体骨架检测(mediapipe)
Python-网络
检测到win电脑断网就发出告警声音
Python编写的DNS服务可靠性测试程序
Python编写的TCP/UDP端口探测程序
Python抓包-Pyshark
并发扫描TCP、UDP端口
Python-DHCP
端口的问题以及绑定端口(Python)
VSCode编辑器
python远程开机工具
Pyhton3--Win注册表
开源IT运维项目
python知识点
Python开源运维项目集合
python3备份交换机配置
Python3使用snmp获取H3C交换机arp表
Python检测tcp端口状态并发送到企微群
Python3使用smtp发邮件
Python3使用smtp发邮件(带附件)
Python3拉取微软AD域所有用户信息
Python3使用微软AD域账号认证
自动更新公网域名的解析(阿里云)
每日定时推送Excel中排班表信息到企微群
Django
Django模板标签
Django在发送POST请求时返回403错误
Django-mysql数据库条件查询
uwsgi 配置 python virtualenv 虚拟环境目录 ( ini 配置)
常用收藏
python3数据类型转换
python处理文本
txt每行一个字符串_用英文逗号连接
txt_匹配并拆分出需要字符串
python获取日期时间
python执行linux命令的三种方式
python使用ssh连接到linux服务器执行命令
本文档由 内网文摘 发布,转载请注明出处
-
+
首页
Python编写的TCP/UDP端口探测程序
## TCP 下面是Python编写的简单端口探测程序,可以探测指定IP地址的主机上是否开放了指定范围内的端口: ``` python import socket # 定义目标主机的IP地址和端口范围 target_host = "127.0.0.1" min_port = 1 max_port = 10000 # 遍历端口范围 for port in range(min_port, max_port+1): # 创建一个TCP连接 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(1) # 尝试连接目标主机的指定端口 result = sock.connect_ex((target_host, port)) if result == 0: # 端口开放,显示提示信息 print("Port {}: OPEN".format(port)) # 关闭TCP连接 sock.close() ``` 以上程序将遍历指定范围内的每个端口,并尝试通过TCP连接到目标主机上的每个端口。如果连接成功,即表示该端口开放。程序将会输出类似于以下的信息: ``` Port 80: OPEN Port 443: OPEN ``` 上面的程序只是一个简单的示例程序,实际上,在真实的网络环境中,可能需要更复杂的端口探测技术和算法,才能更好地确定目标主机上是否存在风险。因此,在实际攻击或允许测试之前,务必先获取相关的授权并确保自己的行为不会违反相关法律法规。 ## UDP UDP端口的探测相比TCP端口探测,要稍微复杂一些,因为UDP是面向无连接的传输协议,需要通过发送UDP数据包并监听返回的数据包,来判断目标主机上的UDP端口是否开放。 UDP端口探测的原理如下: 1. 创建一个UDP套接字。 2. 设置套接字的超时时间,以避免长时间等待。 3. 尝试向目标主机的指定UDP端口发送一个UDP数据包。 4. 如果成功接收到了返回的UDP数据包,则说明UDP端口开放并且可通信。可以根据返回的数据包内容进行进一步的判断。 5. 如果发送或接收失败,通常表示UDP端口关闭或无响应。 6. 关闭UDP套接字。 需要注意的是,UDP端口探测的可靠性不如TCP端口探测,因为UDP是无连接的,数据包可能会丢失、被过滤或由于其他原因无法返回。因此,在进行UDP端口探测时,需要针对具体的场景和需求,经过测试和验证才能得出可靠的结果。 下面是一个简单的Python程序,通过发送UDP数据包来探测指定IP地址的主机是否开放了指定范围内的UDP端口: ``` python import socket # 定义目标主机的IP地址和端口范围 target_host = "127.0.0.1" min_port = 1 max_port = 10000 # 遍历端口范围 for port in range(min_port, max_port+1): # 创建一个UDP套接字 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.settimeout(1) # 尝试向目标主机的指定端口发送UDP数据包 try: sock.sendto(b"Data", (target_host, port)) data, addr = sock.recvfrom(1024) # 如果接收到响应,则表示端口开放,显示提示信息 print("Port {}: OPEN".format(port)) except Exception as ex: # 如果发送或接收失败,则表示端口关闭或无响应 pass # 关闭UDP套接字 sock.close() ``` 以上程序将遍历指定范围内的每个UDP端口,并尝试向目标主机上的每个端口发送一个UDP数据包。如果成功接收到了响应,则认为该端口开放。程序将会输出类似于以下的信息: ``` Port 53: OPEN Port 161: OPEN ``` 需要注意的是,UDP端口探测可能不太准确,因为UDP是无连接的协议,其数据包可能丢失或被过滤掉,从而导致虚假的结果。如果需要更准确的UDP端口探测,可以使用更高级的探测技术和算法。同样需要提醒的是,在实际攻击或测试之前,请务必先获取授权并确保自己的行为不会违反法律法规。
local
2023年12月6日 22:00
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 LocalNetwork
LocalNetwork
是由mrdoc开源
LocalNetwork.cn
修改的在线文档系统,作为个人和小型团队的云笔记、文档和知识库管理工具。
如果此文档给你或你的团队带来了帮助,欢迎支持作者持续投入精力更新和维护!内网文摘 & LocalNetwork
>>>主页
logo
logo
下载Markdown文件
分享
链接
类型
密码
更新密码