可以使用Python的sys模块来读取命令行参数,并使用socket模块来进行主机和端口的连接和状态打印。下面是一个示例脚本:
import sys
import socket
def check_host_status(host, port):
try:
# 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 设置超时时间为2秒
s.settimeout(2)
# 连接主机和端口
s.connect((host, port))
# 打印连接成功的状态
print(f"Host {host} on port {port} is reachable.")
except socket.error:
# 打印连接失败的状态
print(f"Host {host} on port {port} is not reachable.")
finally:
# 关闭socket连接
s.close()
if __name__ == "__main__":
# 读取命令行参数
if len(sys.argv) != 3:
print("Usage: python script.py <host> <port>")
sys.exit(1)
host = sys.argv[1]
port = int(sys.argv[2])
# 调用函数检查主机状态
check_host_status(host, port)
使用方法: 在命令行中执行以下命令:
python script.py <host> <port>
其中<host>
是要检查的主机地址,<port>
是要检查的端口号。
该脚本会尝试连接给定的主机和端口,如果连接成功,则打印主机可达的状态,否则打印主机不可达的状态。
领取专属 10元无门槛券
手把手带您无忧上云