我正在尝试创建一个在python 3.4中创建一个将ping服务器的函数.目前它只需要在Windows上运行(可能是XP及以上版本).
我发现我可以使用WMI Win32_PingStatus(引用)类来ping服务器并编写了以下函数:
import sys
if sys.platform.startswith('win32'):
import wmi
import pythoncom
def ping(ip_address):
""" Check if can ping ip address using OS ping tool"""
if sys.platform.startswith('win32'):
try:
pythoncom.CoInitialize()
c = wmi.WMI()
status_code = c.Win32_PingStatus(address=ip_address)[0].StatusCode
if status_code == 0:
successful = True
else:
successful = False
pythoncom.CoUninitialize()
except wmi.x_wmi:
# If WMI ping fails fallback
pass
else:
raise NotImplementedError
return successful
if __name__ == "__main__":
ping("127.0.0.1")
Run Code Online (Sandbox Code Playgroud)
这可以按预期工作,因为当你可以ping IP时返回True,而当你不能时,它返回false.但是每次我运行它时,最后都会遇到一系列错误:
Win32 exception occurred releasing IUnknown at 0x03140980
Win32 exception occurred …Run Code Online (Sandbox Code Playgroud)