一、接口简介
IP查询天气API是一款免费实用的天气数据接口,可根据IP地址自动获取所在地的精准天气预报。支持自动识别请求IP或指定任意IP查询天气信息。
核心功能亮点:
- 自动识别请求来源IP的天气
- 支持自定义IP查询全国天气
- 免费使用且无日调用上限
官方数据来源:中国气象局
版权声明:接口数据版权详情
二、接口请求说明
请求地址
https://cn.apihz.cn/api/tianqi/tqybip.php
请求方式
✅ GET 或 POST 均可
请求参数:
参数名 | 必填 | 说明 |
id | 是 | 用户中心的数字ID |
key | 是 | 用户中心通讯密钥 |
ip | 否 | 要查询的IP地址(默认自动获取请求IP) |
📌 注意:请前往接口盒子官网注册获取专属ID和KEY
三、返回参数说明
返回JSON格式数据,包含完整气象要素:
字段 | 说明 |
code | 状态码(200成功/400错误) |
msg | 错误提示信息 |
precipitation | 降水量(毫米) |
temperature | 温度(摄氏度) |
pressure | 气压(百帕) |
humidity | 湿度百分比 |
windDirection | 风向(如“东北风”) |
windDirectionDegree | 风向角度(0-360°) |
windSpeed | 风速(米/秒) |
windScale | 风力描述(如“微风”) |
place | 归属地(国家,省份,城市) |
weather1 | 主天气状况(如“多云”) |
weather2 | 副天气状况(如“晴”) |
ip | 查询的IP地址 |
成功响应示例:
json
复制
{ "precipitation": 0, "temperature": 32.9, "pressure": 1010, "humidity": 53, "windDirection": "东北风", "windDirectionDegree": 17, "windSpeed": 1.2, "windScale": "微风", "code": 200, "place": "中国, 上海, 徐家汇", "weather1": "多云", "weather2": "晴", "ip": "49.234.56.78" }
错误响应示例:
json
复制
{"code":400,"msg":"通讯秘钥错误。"}
四、调用代码示例
PHP调用示例(GET方式)
php
复制
<?php $api_url = "https://cn.apihz.cn/api/tianqi/tqybip.php"; $params = [ 'id' => 'YOUR_USER_ID', // 替换为实际ID 'key' => 'YOUR_API_KEY', // 替换为实际KEY 'ip' => '49.234.56.78' // 可选参数 ]; // 构建请求URL $request_url = $api_url . '?' . http_build_query($params); // 发送GET请求 $response = file_get_contents($request_url); // 解析JSON响应 $weather_data = json_decode($response, true); if ($weather_data['code'] == 200) { echo "地点:{$weather_data['place']}\n"; echo "天气:{$weather_data['weather1']}转{$weather_data['weather2']}\n"; echo "温度:{$weather_data['temperature']}℃\n"; } else { echo "错误:{$weather_data['msg']}"; } ?>
Python调用示例(GET方式)
python
运行
复制
import requests api_url = "https://cn.apihz.cn/api/tianqi/tqybip.php" params = { "id": "YOUR_USER_ID", # 替换为实际ID "key": "YOUR_API_KEY", # 替换为实际KEY "ip": "49.234.56.78" # 可选参数 } try: # 发送GET请求 response = requests.get(api_url, params=params) weather_data = response.json() if weather_data["code"] == 200: print(f"地点:{weather_data['place']}") print(f"天气:{weather_data['weather1']}转{weather_data['weather2']}") print(f"温度:{weather_data['temperature']}℃") print(f"风速:{weather_data['windScale']}({weather_data['windSpeed']}m/s)") else: print(f"错误:{weather_data['msg']}") except Exception as e: print(f"请求异常:{str(e)}")
五、使用注意事项
- 身份验证:必须使用自己注册的
id
和key
,避免使用示例中的测试密钥 - 频率限制:共享KEY每分钟有限制,私有KEY可独享更高频次
- IP参数:
- 不传
ip
参数时自动获取请求来源IP - 查询失败默认返回北京天气
- 数据更新:气象数据实时更新,建议每小时调用不超过10次
- 错误处理:务必检查
code
状态码,200才进行数据处理
💡 推荐应用场景:网站天气插件、APP位置服务、物联网设备环境监测、数据分析平台等
通过这个权威免费的天气API,开发者可快速获取精准气象数据,为各类应用提供专业的天气信息服务。建议前往接口盒子官网注册获取专属密钥以保证服务稳定性。