接入教程
1. 访问IPstack官网注册账户并获取API密钥。
2. 使用API密钥调用IPstack端点,传入目标IP地址。
3. 解析返回的JSON数据,获取位置、运营商等信息。
4. 集成到您的应用或网站中,实现访问者分析功能。
Python 请求示例
import requests
# 设置API密钥和IP地址
api_key = 'YOUR_API_KEY'
ip_address = '134.201.250.155'
base_url = 'http://api.ipstack.com/'
# 构建请求URL
url = f'{base_url}{ip_address}?access_key={api_key}'
# 发送GET请求
try:
response = requests.get(url)
response.raise_for_status()
data = response.json()
print(f"IP: {data.get('ip')}")
print(f"位置: {data.get('city')}, {data.get('country_name')}")
print(f"经纬度: {data.get('latitude')}, {data.get('longitude')}")
except requests.exceptions.RequestException as e:
print(f"请求错误: {e}")
except ValueError as e:
print(f"JSON解析错误: {e}")
PHP cURL 示例
<?php
// 配置API参数
$api_key = 'YOUR_API_KEY';
$ip_address = '134.201.250.155';
$base_url = 'http://api.ipstack.com/';
// 构建请求URL
$url = $base_url . $ip_address . '?access_key=' . $api_key;
// 初始化cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
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);
curl_close($ch);
exit;
}
curl_close($ch);
// 解析JSON响应
$data = json_decode($response, true);
if (json_last_error() !== JSON_ERROR_NONE) {
echo 'JSON解析错误: ' . json_last_error_msg();
exit;
}
// 输出结果
echo "IP: " . ($data['ip'] ?? 'N/A') . "\n";
echo "位置: " . ($data['city'] ?? 'N/A') . ", " . ($data['country_name'] ?? 'N/A') . "\n";
echo "经纬度: " . ($data['latitude'] ?? 'N/A') . ", " . ($data['longitude'] ?? 'N/A') . "\n";
?>
JavaScript Fetch 示例
// API配置
const apiKey = 'YOUR_API_KEY';
const ipAddress = '134.201.250.155';
const baseUrl = 'http://api.ipstack.com/';
// 构建请求URL
const url = `${baseUrl}${ipAddress}?access_key=${apiKey}`;
// 使用Fetch API发送请求
async function getIpLocation() {
try {
const response = await fetch(url);
if (!response.ok) {
throw new Error(`HTTP错误: ${response.status}`);
}
const data = await response.json();
console.log(`IP: ${data.ip || 'N/A'}`);
console.log(`位置: ${data.city || 'N/A'}, ${data.country_name || 'N/A'}`);
console.log(`经纬度: ${data.latitude || 'N/A'}, ${data.longitude || 'N/A'}`);
return data;
} catch (error) {
console.error('请求失败:', error);
throw error;
}
}
// 调用函数
getIpLocation().catch(console.error);
常见问题
IPstack API支持哪些数据字段?
IPstack API返回丰富的IP地址相关信息,包括:地理位置(国家、城市、经纬度)、时区、货币、网络运营商信息、安全威胁检测数据、连接类型等。具体字段取决于您的订阅计划。
如何处理API请求限制和错误?
IPstack API有请求频率限制,取决于您的订阅计划。建议在代码中添加错误处理机制,检查HTTP状态码和响应中的错误信息。常见的错误包括无效API密钥、超出配额、无效IP地址格式等。
IPstack API的免费套餐有哪些限制?
免费套餐通常包括每月有限次数的API调用(如1000次),支持基本的地理位置数据,但不包含高级功能如安全威胁检测、批量查询等。建议查看官方网站获取最新的定价和套餐详情。
Aitishiku.com