如何使用ip地址查找位置
How to find location using ip address
我的网站托管在 pythonanywhere.com 上,我可以从访问日志中获取网站访问者的 IP 地址。我的问题是
- 是否可以获得该访客的确切位置?
您可以从访问者的 IP 地址获取访问者的位置。这是一个称为地理定位的过程。
既然你需要得到准确的位置,你必须知道它的准确性取决于多种因素,所有的地理定位 API 都不是同样准确的。我设法通过 Abstract API 获得了最佳结果(它有免费和商业计划)。您使用 get 请求对其进行查询,并收到包含纬度、经度、国家/地区、城市...
的 JSON 响应
如你问题下的评论所述,有些访问者可以通过使用VPN服务隐藏他们的真实IP,而在JSON回复中,这个API可以告诉你该IP是否属于VPN 服务,这样您就可以知道访问者是否隐藏了他的位置和 IP。
您可以为此使用某些 API 服务。
例如https://apiip.net,他们的API提供了很多关于IP的信息,如果需要你也可以请求XML回复。
简单的 GET 调用:
https://apiip.net/api/check?ip=67.250.186.196&accessKey={your_api_key}
回复:
{
"ip": "67.250.186.196",
"continentCode": "NA",
"continentName": "North America",
"countryCode": "US",
"countryName": "United States",
"countryNameNative": "United States",
"city": "New York",
"postalCode": "10001",
"latitude": 40.8271,
"longitude": -73.9359,
"capital": "Washington D.C.",
"phoneCode": "1",
"countryFlagEmoj": "",
"countryFlagEmojUnicode": "U+1F1FA U+1F1F8",
"isEu": false,
"languages": {
"en": {
"code": "en",
"name": "English",
"native": "English"
}
},
"currency": {
"code": "USD",
"name": "US Dollar",
"symbol": "$",
"number": "840",
"rates": {
"EURUSD": 1.11
}
},
"timeZone": {
"id": "America/New_York",
"currentTime": "10/26/2021, 2:54:10 PM",
"code": "EDT",
"timeZoneName": "EDT",
"utcOffset": -14400
},
"connection": {
"asn": 12271,
"isp": "Charter Communications Inc"
},
"security": {
"isPublicProxy": false,
"isResidentialProxy": false,
"isTorExitNode": false,
"network": "67.250.176.0/20"
}
}
我的网站托管在 pythonanywhere.com 上,我可以从访问日志中获取网站访问者的 IP 地址。我的问题是
- 是否可以获得该访客的确切位置?
您可以从访问者的 IP 地址获取访问者的位置。这是一个称为地理定位的过程。
既然你需要得到准确的位置,你必须知道它的准确性取决于多种因素,所有的地理定位 API 都不是同样准确的。我设法通过 Abstract API 获得了最佳结果(它有免费和商业计划)。您使用 get 请求对其进行查询,并收到包含纬度、经度、国家/地区、城市...
的 JSON 响应如你问题下的评论所述,有些访问者可以通过使用VPN服务隐藏他们的真实IP,而在JSON回复中,这个API可以告诉你该IP是否属于VPN 服务,这样您就可以知道访问者是否隐藏了他的位置和 IP。
您可以为此使用某些 API 服务。
例如https://apiip.net,他们的API提供了很多关于IP的信息,如果需要你也可以请求XML回复。
简单的 GET 调用:
https://apiip.net/api/check?ip=67.250.186.196&accessKey={your_api_key}
回复:
{
"ip": "67.250.186.196",
"continentCode": "NA",
"continentName": "North America",
"countryCode": "US",
"countryName": "United States",
"countryNameNative": "United States",
"city": "New York",
"postalCode": "10001",
"latitude": 40.8271,
"longitude": -73.9359,
"capital": "Washington D.C.",
"phoneCode": "1",
"countryFlagEmoj": "",
"countryFlagEmojUnicode": "U+1F1FA U+1F1F8",
"isEu": false,
"languages": {
"en": {
"code": "en",
"name": "English",
"native": "English"
}
},
"currency": {
"code": "USD",
"name": "US Dollar",
"symbol": "$",
"number": "840",
"rates": {
"EURUSD": 1.11
}
},
"timeZone": {
"id": "America/New_York",
"currentTime": "10/26/2021, 2:54:10 PM",
"code": "EDT",
"timeZoneName": "EDT",
"utcOffset": -14400
},
"connection": {
"asn": 12271,
"isp": "Charter Communications Inc"
},
"security": {
"isPublicProxy": false,
"isResidentialProxy": false,
"isTorExitNode": false,
"network": "67.250.176.0/20"
}
}