使用python编写脚本测试目标主机的TCP端口连通性

使用Python的Socket模块的connect()函数来尝试连接目标主机的特定端口。如果连接成功,则说明该端口是打开的;否则,该端口是关闭的。

下面是一个示例脚本,可以检测目标IP的22端口是否开启:

python 复制代码
import socket
def check_port(ip, port):
   # 设置超时时间为3秒钟
   socket.setdefaulttimeout(3)
   s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
   try:
       s.connect((ip, port))
       print("端口开放")
   except socket.timeout:
       print("端口关闭")
   except ConnectionRefusedError:
       print("连接被拒绝")
   except Exception as e:
       print("发生异常:", e)
   finally:
       s.close()

   if __name__ == '__main__':
       check_port("127.0.0.1", 22)

在这个程序中,我们首先使用socket模块创建一个TCP套接字。然后,我们使用try-except语句来尝试连接指定的IP地址和端口。如果连接成功,则说明端口开放;如果连接超时,则说明端口关闭;如果连接被拒绝,则说明目标主机存在但是目标端口未开放;如果发生其他异常,则输出异常信息。最后,我们使用finally语句来关闭套接字,以确保程序能够正确地释放资源。

相关推荐
月亮!3 分钟前
移动端测试重磅升级:跨平台自动化测试框架深度对比
运维·网络·人工智能·测试工具·容器·自动化·测试用例
阿部多瑞 ABU1 小时前
国内外大模型安全红队实测:角色越狱与分步诱导双路径可稳定绕过政治与技术防护
网络·安全·ai
青果全球http1 小时前
HTTP代理原理揭秘:如何实现高效数据中转?
网络·网络协议·http
@YDWLCloud1 小时前
用腾讯云国际版搭建全球加速架构:5 分钟实现多地访问提速
服务器·架构·云计算·github·腾讯云
渡我白衣2 小时前
计算机组成原理(1):计算机发展历程
java·运维·开发语言·网络·c++·笔记·硬件架构
步步为营DotNet2 小时前
深入理解IAsyncEnumerable:异步迭代的底层实现与应用优化
java·服务器·数据库
装不满的克莱因瓶2 小时前
【Java架构 搭建环境篇三】Linux安装Git详细教程
java·linux·运维·服务器·git·架构·centos
wanhengidc2 小时前
云手机深度解析其原理与功能
服务器·科技·游戏·智能手机
黑客思维者2 小时前
突破 Python 多线程限制:GIL 问题的 4 种实战解法
服务器·数据库·python·gil