写python查询IP地址归属地
时间: 2023-03-20 11:00:18 浏览: 289
要查询IP地址的归属地,可以使用第三方库来实现,比如 `ipinfo`。
首先,需要在终端或命令行中安装 `ipinfo` 库。可以使用以下命令:
```
pip install ipinfo
```
接下来,可以使用以下代码来查询 IP 地址的归属地:
```python
import ipinfo
access_token = "YOUR_ACCESS_TOKEN" # 替换为你的 ipinfo 访问令牌
ip_address = "8.8.8.8" # 替换为要查询的 IP 地址
handler = ipinfo.getHandler(access_token)
details = handler.getDetails(ip_address)
print("IP 地址:", details.ip)
print("国家:", details.country)
print("地区:", details.region)
print("城市:", details.city)
print("经纬度:", details.loc)
```
需要将 `YOUR_ACCESS_TOKEN` 替换为你在 ipinfo 网站上申请的访问令牌。在 `handler.getDetails(ip_address)` 函数中,将 IP 地址作为参数传入,该函数将返回一个包含 IP 地址归属地信息的对象。然后,可以通过这个对象来获取 IP 地址的归属地信息,如国家、地区、城市等。
注意,`ipinfo` 库需要联网才能查询 IP 地址的归属地信息。如果无法联网,可能会抛出异常。
相关问题
无接口用python查询IP的归属地
你可以通过爬取一些免费的IP地址库来查询IP的归属地,这里以淘宝IP地址库为例,代码如下:
```python
import requests
def query_ip_location(ip):
url = 'http://ip.taobao.com/service/getIpInfo.php?ip={}'.format(ip)
r = requests.get(url)
json_data = r.json()
if json_data['code'] == 0:
data = json_data['data']
return '{} {} {}'.format(data['country'], data['region'], data['city'])
else:
return json_data['msg']
ip = '8.8.8.8'
location = query_ip_location(ip)
print('{} 的归属地是:{}'.format(ip, location))
```
这里定义了一个`query_ip_location`函数,接收一个IP地址作为参数,然后通过爬取淘宝IP地址库的API获取IP的归属地信息。如果查询成功,返回归属地信息,否则返回错误信息。你只需要调用这个函数并传入要查询的IP地址即可。
python 查询ip归属地 ip138
好的,您可以使用 Python 的 requests 库向 ip138 发送 HTTP GET 请求,然后解析返回的 HTML 页面来获取 IP 地址的归属地信息。以下是一个示例代码:
```python
import requests
from bs4 import BeautifulSoup
ip_address = "202.204.80.112"
url = "http://www.ip138.com/ips138.asp?ip=" + ip_address
response = requests.get(url)
response.encoding = "gb2312"
soup = BeautifulSoup(response.text, "html.parser")
table = soup.find_all("table")[2]
trs = table.find_all("tr")
tds = trs[2].find_all("td")
location = tds[1].text.strip()
print("IP地址:", ip_address)
print("归属地:", location)
```
请注意,这种方法可能不是很可靠,因为它依赖于网站的 HTML 页面结构,而这个结构可能会随着时间的推移而发生变化。如果您需要更可靠的方法,请考虑使用专业的 IP 地址归属地查询 API。
阅读全文