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

相关推荐
桃子叔叔几秒前
Prompt Engineering完全指南:从基础到高阶技术实战
java·服务器·prompt
minji...3 分钟前
linux 进程控制(一) (fork进程创建,exit进程终止)
linux·运维·服务器·c++·git·算法
wanhengidc3 分钟前
巨 椰 云手机功能丰富 高性价比
运维·服务器·科技·智能手机·云计算
I · T · LUCKYBOOM6 分钟前
21.Linux网络设置
linux·运维·网络
❀͜͡傀儡师7 分钟前
使用Docker部署DashDot服务器仪表盘和Drupal
服务器·docker·容器
橘子编程14 分钟前
仓颉语言变量与表达式解析
java·linux·服务器·开发语言·数据库·python·mysql
虚神界熊孩儿19 分钟前
linux下创建用户和用户组
linux·运维·服务器
老鱼说AI22 分钟前
算法初级教学第四步:栈与队列
网络·数据结构·python·算法·链表
python百炼成钢23 分钟前
53.Linux regmap驱动框架
linux·运维·服务器·驱动开发
python百炼成钢26 分钟前
54.Linux IIO驱动框架
linux·运维·服务器·驱动开发