使用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语句来关闭套接字,以确保程序能够正确地释放资源。

相关推荐
怪兽也会哭哭27 分钟前
网页部署到宝塔服务器上,发送请求报错?org.springframework.data.redis.RedisSystemException,让我来看看
运维·服务器·redis
啊卡无敌42 分钟前
记一次gitlab服务器负载过高问题处理
服务器·gitlab·github
续亮~1 小时前
ANP协议深度解析:智能体网络协议的演进与革新
网络·后端·网络协议·ai·ai编程
跑得动1 小时前
头歌 | WPS文档基本操作
运维·服务器·wps
大大大大肉包3 小时前
私有化部署DeepSeek
linux·运维·服务器
xyd陈宇阳3 小时前
Linux 入门五:Makefile—— 从手动编译到工程自动化的蜕变
linux·运维·服务器·makefile
密码小丑3 小时前
玄机-apache日志分析
网络·笔记·apache
学习2年半4 小时前
+++++背到厌倦。持续更新
网络·网络协议·rpc
冰滚水4 小时前
网络建设与运维神州数码DCN sFlow网络流量信息协议
运维·网络·sflow·网络建设与运维·网络搭建·神州数码
Reggie_L4 小时前
网络初识 - Java
java·网络