Board logo

标题: CentOS6使用Socket(检测TCP端口) [打印本页]

作者: admin    时间: 2019-9-26 09:12     标题: CentOS6使用Socket(检测TCP端口)

操作系统的版本信息: [root@centos6 ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@centos6 ~]# [root@centos6 ~]# uname -r 2.6.32-696.el6.x86_64 Python的版本信息: [root@centos6 ~]# python3 --version Python 3.6.8 ###### 检测本机的某个TCP端口是否能被访问: [root@centos6 ~]# cat check.py #coding=utf-8 import socket #这个模块是内置的,不用额外安装 host_1 = socket.gethostname() #获取本机的主机名 ip_1 = '127.0.0.1' #本机的回环IP地址 port_1 = 80 #检测 TCP 80 端口 try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((ip_1, port_1)) except: print(f"本机({host_1})的TCP端口{port_1}是不通的。") #如果端口对应的服务没启动,就会不通 else: print(f"本机({host_1})的TCP端口{port_1}是通的。") 设置脚本权限: [root@centos6 ~]# chmod a+x check.py 脚本运行的结果:(端口不能被访问时) [root@centos6 ~]# service httpd stop stop apache... done [root@centos6 ~]# [root@centos6 ~]# python3 check.py 本机(centos6.zhuohua.store)的TCP端口80是不通的。 [root@centos6 ~]# 脚本运行的结果:(端口能被访问时) [root@centos6 ~]# service httpd start start apache... done [root@centos6 ~]# [root@centos6 ~]# python3 check.py 本机(centos6.zhuohua.store)的TCP端口80是通的。 [root@centos6 ~]# ###### 检测本机的多个TCP端口是否能被访问: [root@centos6 ~]# cat check.py #coding=utf-8 import socket host_1 = socket.gethostname() ip_1 = '127.0.0.1' def func1(ip_1,port_1): try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((ip_1, port_1)) except: print(f"本机'{host_1}'的TCP端口{port_1}是不通的。") else: print(f"本机'{host_1}'的TCP端口{port_1}是通的。") if __name__ == '__main__': ### 多次执行函数,就可以一次性检测本机的多个TCP端口了 func1(ip_1,80) func1(ip_1,3306) 脚本运行的结果: [root@centos6 ~]# python3 check.py 本机'centos6.zhuohua.store'的TCP端口80是通的。 本机'centos6.zhuohua.store'的TCP端口3306是不通的。 [root@centos6 ~]# ###### 检测多台远程主机的多个TCP端口是否能被访问: [root@centos6 ~]# cat check.py #coding=utf-8 import socket import datetime dt = datetime.datetime.now() tt = dt.strftime('%Y%m%d_%H%M') def func1(ip_1,port_1): try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((ip_1, port_1)) except: print(f"检测时间:{tt} 远程主机[{ip_1}]的TCP端口{port_1}是不通的。") else: print(f"检测时间:{tt} 远程主机[{ip_1}]的TCP端口{port_1}是通的。") if __name__ == '__main__': ### 多次执行函数,就可以一次性检测多台远程主机的多个TCP端口了 ip_1 = "www.baidu.com" port_1 = 80 func1(ip_1,port_1) ip_1 = "blog.zhuohua.store" port_1 = 80 func1(ip_1,port_1) ip_1 = "47.75.39.177" port_1 = 21 func1(ip_1,port_1) 脚本运行的结果: [root@centos6 ~]# python3 check.py 检测时间:20190208_1246 远程主机[www.baidu.com]的TCP端口80是通的。 检测时间:20190208_1246 远程主机[blog.zhuohua.store]的TCP端口80是通的。 检测时间:20190208_1246 远程主机[47.75.39.177]的TCP端口21是不通的。 [root@centos6 ~]# 相关文章: CentOS6使用tcping+crontab计划任务 Python3获取主机名和IP地址 Python3使用Socket发送信息 CentOS8使用Socket(检测TCP端口) 自定义函数 try语句




欢迎光临 blog.zhuohua.store (http://blog.zhuohua.store/) Powered by Discuz! 7.2