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

相关推荐
会飞的土拨鼠呀1 小时前
通过Linux进程id找到程序路径
linux·服务器·网络
GIS数据转换器1 小时前
GIS+大模型助力安全风险精细化管理
大数据·网络·人工智能·安全·无人机
让学习成为一种生活方式1 小时前
植物中验证蛋白相互作用的Pull-down和Co-IP技术--文献精读181
网络·网络协议·tcp/ip
普普通通的南瓜1 小时前
IP证书在关键信息基础设施安全防护中的实践与挑战
网络·数据库·网络协议·tcp/ip·安全·ssl
wanhengidc3 小时前
云手机中的数据通常存储在哪里?
运维·服务器·安全·web安全·智能手机
凌寒113 小时前
Linux(Debain)安装Redis、数据迁移
linux·运维·服务器·redis
讨厌下雨的天空3 小时前
网络基础
网络·1024程序员节
0和1的舞者4 小时前
《网络编程核心概念与 UDP Socket 组件深度解析》
java·开发语言·网络·计算机网络·udp·socket
2501_921939264 小时前
11.25Nginx服务器和Wordpress服务器
运维·服务器·nginx
华普微HOPERF4 小时前
Matter协议,如何赋能智能家居构建跨生态的互操作网络?
网络·智能家居