在Python中,你可以使用subprocess
模块来执行系统命令
import subprocess
subprocess.run()
函数,它允许你运行一个命令并获取其输出。我们将使用-c
选项来指定要发送的ping数据包数量,-n
选项来指定要ping的主机数量(在Windows系统中)或IP地址(在Linux和macOS系统中),以及-W
选项来指定超时时间(以秒为单位)。def ping(host, count=4, timeout=1):
if sys.platform.startswith('win'):
# Windows系统下的ping命令格式
command = f'ping -n {count} {host} -W {timeout}'
else:
# Linux和macOS系统下的ping命令格式
command = f'ping -c {count} {host} -W {timeout}'
result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
if result.returncode == 0:
print(f'{host} is reachable.')
else:
print(f'Failed to ping {host}. Error: {result.stderr}')
if __name__ == '__main__':
host = input('Enter the host to ping: ')
ping(host)
这个示例中的ping()
函数可以在Windows和Linux/macOS系统上运行。请注意,这个函数仅适用于Unix-like系统,如果你需要在Windows上运行它,你可能需要对命令进行一些调整。