python 获取ip地址
时间: 2023-07-25 21:50:03 浏览: 57
你可以使用 Python 中的 socket 模块来获取本机的 IP 地址。具体代码如下:
```python
import socket
# 获取本机IP地址
def get_ip_address():
# 创建 socket 对象
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
# 连接外网地址
s.connect(('8.8.8.8', 80))
# 获取本机IP地址
ip = s.getsockname()[0]
except Exception as e:
print(e)
ip = ''
finally:
# 关闭 socket 连接
s.close()
return ip
```
这段代码中,我们创建了一个 UDP socket 连接到 Google 的 DNS 服务器 8.8.8.8,然后调用 getsockname() 方法获取本机的 IP 地址。注意,这种方法只能获取到本机连接外网的 IP 地址,如果是局域网内的 IP 地址需要使用其他方法获取。
相关问题
python获取网络地址
要在Python中获取网络地址,你可以使用以下方法之一:
方法一:使用socket库的gethostname()函数和gethostbyname()函数来获取本地主机的IP地址。代码如下:
```python
import socket
# 获取本地主机名
hostname = socket.gethostname()
# 获取本地主机的IP地址
ip_address = socket.gethostbyname(hostname)
print(ip_address)
```
这种方法适用于获取局域网IP地址。\[1\]
方法二:使用requests库和正则表达式来获取外部IP地址。代码如下:
```python
import requests
import re
def getOuterIP():
ip = ''
try:
res = requests.get('https://myip.ipip.net', timeout=5).text
ip = re.findall(r'(\d+\.\d+\.\d+\.\d+)', res)
ip = ip\[0\] if ip else ''
except:
pass
return ip
print(getOuterIP())
```
这种方法通过访问一个获取外部IP地址的网站,并使用正则表达式提取IP地址。\[2\]
方法三:使用socket库的socket函数和getsockname()函数来获取本地主机的IP地址。代码如下:
```python
import socket
def extract_ip():
st = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
st.connect(('10.255.255.255', 1))
IP = st.getsockname()\[0\]
except Exception:
IP = '127.0.0.1'
finally:
st.close()
return IP
print(extract_ip())
```
这种方法适用于获取所有接口的IP地址,包括公共、私有和外部IP地址。\[3\]
希望这些方法能够帮助到你!
#### 引用[.reference_title]
- *1* *2* *3* [Python获取本机IP地址的几种方式](https://blog.csdn.net/sxf1061700625/article/details/123526907)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
wsl下python获取windowsip地址
在Windows子系统Linux环境(WSL)下,可以通过以下步骤获取本机的Windows IP地址:
1. 首先,在WSL终端中打开命令提示符。
2. 通过运行以下命令来获取本机的Windows IP地址:
```
ipconfig | grep IPv4 | awk '{print $NF}'
```
这个命令会执行本地Windows系统的ipconfig命令,然后使用grep筛选出包含“IPv4”关键字的行,并使用awk命令提取最后一列,也就是IP地址。
3. 运行完命令后,命令输出即为本机的Windows IP地址。
请注意,这个方法仅适用于在WSL环境中运行的Python程序需要获取本机的Windows IP地址。如果你需要在Python程序中获取本机的Windows IP地址,可以使用subprocess模块在Python代码中执行相同的命令来获取IP地址。
希望这个回答对你有帮助!如果你有任何其他问题,请随时提问。