python获取网络地址
时间: 2023-08-24 12:09:26 浏览: 47
要在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 ]