用python 获取本机网络信息,并ping百度网站
时间: 2024-09-25 12:15:39 浏览: 43
在Python中,你可以使用`socket`模块来进行网络连接测试,比如ping操作。然而,直接ping外部网站并不像命令行那样直接,因为Python的`socket`库并没有内置ping的功能。通常我们会模拟发送ICMP协议的Echo Request包到目标地址,然后接收Echo Reply。
这里是一个示例,展示如何使用第三方库如`ping3`获取本机IP并ping百度:
```python
from ping3 import ping
def get_local_ip():
try:
return [l for l in ([ip for ip in socket.gethostbyname_ex(socket.gethostname())[2]
if not ip.startswith("127.")][:1],
[[(s.connect(('8.8.8.8', 53)), s.getsockname()[0], s.close()) for s in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]][0][1]]) if l][0][0]
except Exception:
return "127.0.0.1"
# Ping 百度网站
local_ip = get_local_ip()
baidu_url = "www.baidu.com"
response_time = ping(baidu_url)
print(f"本地IP: {local_ip}")
if response_time is None:
print("无法ping通百度")
else:
print(f"Ping 百度的时间: {response_time * 1000}ms")
阅读全文