我正在尝试做一个程序,为ping ip地址等。然而,每次我尝试ping一个Ip地址,我总是得到多个错误。我尝试了多种不同的方法来ping ip地址,但都不起作用。任何帮助都将不胜感激!:D
我的代码:
import time
import socket
import os
import subprocess
time.sleep(1)
print(' _ __ __')
time.sleep(0.3)
print(' / |/ /__ ___/ /__')
time.sleep(0.3)
print(' / / _ \/ _ / -_)')
time.sleep(0.3)
print('/_/|_/\___/\_,_/\__/')
print('\n\n')
time.sleep(1)
while True:
prompt = input('>>> ')
if prompt == '/ip-?':
print(socket.gethostbyname(socket.getfqdn()))
elif prompt == '/hn-?':
print(socket.gethostname())
elif prompt == '/h':
print('\n/ip-? --- IP ADDRESS')
print('/hn-? --- HOST NAME')
print('/e --- EXIT')
print('\n')
elif prompt == '/ip->':
#THIS IS WHERE THE PROBLEM IS OCCURING
out = subprocess.run(['ping', 'google.com'], capture_output=True)
print(out.stdout.decode())
elif prompt == '/e':
break回溯:
Traceback (most recent call last):
File "D:\PYTHON\PROJECTS\everything.py", line 33, in <module>
out = subprocess.run(['ping', 'google.com'], capture_output=True)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 489, in run
with Popen(*popenargs, **kwargs) as process:
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 854, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 1307, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified发布于 2020-10-22 04:21:02
ping.exe应该在系统目录C:\WindowsSystem32中。如果它在没有路径的情况下无法运行,请添加它。您可以使用正斜杠来避免python使用\转义特殊字符时出现的潜在问题。
out = subprocess.run(['C:/Windows/System32/ping', 'google.com'], capture_output=True)请注意,这将使您的程序只显示窗口。Linux/Mac也有"ping“程序,所以如果简单的"ping”不起作用,你可以把它当做后备。根据平台的不同,"ping“程序可能有不同的参数和输出,因此您可能需要首先检查平台版本,并实现代码的两个不同版本。
https://stackoverflow.com/questions/64470709
复制相似问题