在Python中,你可以使用subprocess
模块来执行系统命令
- 导入所需的库:
import subprocess
- 编写一个函数来执行ping命令。这里我们使用
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}')
- 使用这个函数来ping一个主机:
if __name__ == '__main__': host = input('Enter the host to ping: ') ping(host)
这个示例中的ping()
函数可以在Windows和Linux/macOS系统上运行。请注意,这个函数仅适用于Unix-like系统,如果你需要在Windows上运行它,你可能需要对命令进行一些调整。