操作系统的版本信息:
[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语句 |