用python获取当前ip
时间: 2024-11-16 13:27:16 浏览: 5
在Python中,你可以使用第三方库如`socket`、`requests`或者`speedtest-cli`来获取你的IP地址。以下是几种常见的方法:
1. **使用socket**:
```python
import socket
def get_ip():
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
# 这里DNS查询Google的8.8.8.8 IP地址,返回的是本地IP
s.connect(('8.8.8.8', 80))
ip = s.getsockname()[0]
except Exception:
ip = '127.0.0.1'
finally:
s.close()
return ip
current_ip = get_ip()
print(current_ip)
```
2. **使用requests** (如果网络可用):
```python
import requests
def get_ip_from_requests():
response = requests.get('https://api.ipify.org')
current_ip = response.text.strip()
return current_ip
current_ip = get_ip_from_requests()
print(current_ip)
```
3. **使用speedtest-cli** (安装并运行命令行工具):
```bash
pip install speedtest-cli
speedtest > /dev/null 2>&1 | grep "Download" | awk '{print $4}'
```
然后在Python中读取命令行输出:
```python
import subprocess
output = subprocess.check_output(['speedtest', '--simple'])
ip = output.decode().split("\n")[1].split(" ")[0]
print(ip)
```
注意,这些方法可能会因为网络环境或者防火墙设置的不同而有所不同。
阅读全文