IP地址查询API
通过IP地址查询地理位置信息,精准定位IP所在的城市、运营商等信息,助力您的应用实现IP定位功能。
响应结果
查询结果预览
API概述
IP地址查询API提供高精度的IP地理位置查询服务,通过输入IP地址,可以获取该IP所在的国家、省份、城市以及运营商等信息。该API适用于需要进行IP定位的各类应用场景,如内容过滤、广告投放、安全审计等。
我们的IP数据库每日更新,确保数据的准确性和时效性。API响应迅速,性能稳定,支持高并发请求,能够满足不同规模应用的需求。
API端点
GET https://api.vitphp.cn/ip/
请求参数
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
ip | string | 是 | 需要查询的IP地址,支持IPv4和IPv6格式 |
响应格式
API返回JSON格式的数据,包含以下字段:
{
"code": 1,
"msg": "获取成功",
"city": "中国河北省石家庄市电信"
}
字段 | 类型 | 描述 |
---|---|---|
code | integer | 响应状态码,1表示成功,非1表示错误 |
msg | string | 响应消息,成功时返回"获取成功",失败时返回错误信息 |
city | string | IP所在的地理位置信息,包括国家、省份、城市和运营商 |
错误代码
当code字段不为1时,表示请求出错,可能的错误代码如下:
错误代码 | 描述 |
---|---|
0 | 未知错误 |
1001 | 缺少必需的参数 |
1002 | 无效的IP地址格式 |
1003 | API调用频率超过限制 |
1004 | API密钥无效或已过期(企业版) |
使用限制
- 免费版每分钟最多可调用10次API
- 企业版无调用频率限制,需申请API密钥
- 仅支持公开IP地址查询,私有IP地址将返回默认信息
- 地理位置信息可能存在一定误差,特别是移动设备
- IP数据库每日更新,确保数据的准确性
Python示例
import requests
import json
def query_ip_location(ip):
url = "https://api.vitphp.cn/ip/"
params = {
"ip": ip
}
try:
response = requests.get(url, params=params)
data = response.json()
if data["code"] == 1:
print(f"IP: {ip}")
print(f"地理位置: {data['city']}")
return data
else:
print(f"查询失败: {data['msg']}")
return None
except Exception as e:
print(f"发生异常: {e}")
return None
# 使用示例
ip = "192.168.1.1"
result = query_ip_location(ip)
JavaScript示例
async function queryIPLocation(ip) {
try {
const response = await fetch(`https://api.vitphp.cn/ip/?ip=${ip}`);
if (!response.ok) {
throw new Error(`HTTP错误: ${response.status}`);
}
const data = await response.json();
if (data.code === 1) {
console.log(`IP: ${ip}`);
console.log(`地理位置: ${data.city}`);
return data;
} else {
console.error(`查询失败: ${data.msg}`);
return null;
}
} catch (error) {
console.error(`发生异常: ${error}`);
return null;
}
}
// 使用示例
const ip = "192.168.1.1";
queryIPLocation(ip).then(result => {
// 处理结果
});
PHP示例
function queryIPLocation($ip) {
$url = "https://api.vitphp.cn/ip/";
$params = [
"ip" => $ip
];
$urlWithParams = $url . '?' . http_build_query($params);
$ch = curl_init($urlWithParams);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Curl错误: ' . curl_error($ch);
return null;
}
curl_close($ch);
$data = json_decode($response, true);
if ($data["code"] == 1) {
echo "IP: " . $ip . "\n";
echo "地理位置: " . $data["city"] . "\n";
return $data;
} else {
echo "查询失败: " . $data["msg"] . "\n";
return null;
}
}
// 使用示例
$ip = "192.168.1.1";
$result = queryIPLocation($ip);
Java示例
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
public class IPLocationQuery {
public static void main(String[] args) {
String ip = "192.168.1.1";
queryIPLocation(ip);
}
public static void queryIPLocation(String ip) {
try {
String encodedIP = URLEncoder.encode(ip, StandardCharsets.UTF_8);
URL url = new URL("https://api.vitphp.cn/ip/?ip=" + encodedIP);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader reader = new BufferedReader(
new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
// 解析JSON响应
String jsonResponse = response.toString();
System.out.println("API响应: " + jsonResponse);
} else {
System.out.println("HTTP错误: " + responseCode);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
cURL示例
# 示例IP
ip="192.168.1.1"
# 发送请求
curl "https://api.vitphp.cn/ip/?ip=$ip"
如何获取API访问权限?
访问IP地址查询API不需要特殊权限,您可以直接使用提供的API端点进行调用。如需更高的调用频率限制或获取更详细的IP信息,可以联系我们申请企业版API密钥。
API的响应时间是多久?
在正常情况下,API的响应时间通常在50-200毫秒之间,具体取决于服务器负载情况和查询的IP地址类型。
IP地理位置数据的准确性如何?
我们的IP地理位置数据库采用了多源数据融合技术,准确率在95%以上。对于固定IP地址,准确率更高;对于移动设备,由于IP地址动态分配,可能存在一定的误差。
是否支持批量查询?
免费版API仅支持单个IP查询。企业版API支持批量查询功能,可以一次性查询多个IP地址的地理位置信息,大幅提高处理效率。
API有调用频率限制吗?
免费版API每分钟最多可调用10次。如需更高的调用频率限制,可以升级到我们的企业版套餐,企业版无调用频率限制。
如何获取更详细的IP信息?
免费版API仅返回基本的地理位置信息。企业版API可以提供更详细的信息,包括精确经纬度、时区、邮政编码、ISP信息、ASN号等。如需获取更详细的IP信息,请联系我们申请企业版API密钥。
如何处理API返回的错误?
当API返回错误时,您可以根据返回的错误代码和消息进行相应的处理。建议在调用API时添加适当的错误处理逻辑,以提高应用的健壮性。