python获取ip地址
时间: 2023-09-22 11:15:17 浏览: 40
获取本机IP地址:
```python
import socket
hostname = socket.gethostname()
ip_address = socket.gethostbyname(hostname)
print(ip_address)
```
获取公网IP地址:
```python
import requests
response = requests.get('https://api.ipify.org')
ip_address = response.text
print(ip_address)
```
注意:获取公网IP地址需要联网,并且需要访问一个公网IP地址查询API。
相关问题
python 获取ip地址
你可以使用 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获取ip归属地
在Python中,你可以使用第三方库来获取IP地址的归属地信息。一个常用的库是"requests",你可以使用它来发送HTTP请求并获取响应数据。另外,还需要使用一个IP地址查询的API来获取具体的归属地信息。
以下是一个示例代码,演示如何使用Python获取IP地址的归属地信息:
```python
import requests
def get_ip_location(ip):
url = f"http://ip-api.com/json/{ip}"
response = requests.get(url)
data = response.json()
if data["status"] == "success":
country = data["country"]
city = data["city"]
return f"The IP {ip} is located in {city}, {country}."
else:
return "Failed to retrieve IP location."
ip_address = "123.45.67.89"
location = get_ip_location(ip_address)
print(location)
```
请注意,上述代码使用了一个免费的IP地址查询服务(http://ip-api.com/json/),但是这个服务可能会有一定的限制和使用条款,请确保你遵守相关规定。