Skip to content

实用工具 ​

提供访问者 IP 获取、IP 归属地查询与城市天气信息查询三个实用接口。

天气接口返回数据中的天气状况文字(如「多云」「阵雨转中雨」)已自动匹配和风天气图标 code,可直接使用 <i class="qi-{code}"></i> 渲染图标。

和风天气图标

本页及首页已引入 qweather-icons 图标字体,可直接使用:

html
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/qweather-icons@1.8.0/font/qweather-icons.css">
<i class="qi-101"></i> <!-- 多云 -->
<i class="qi-307"></i> <!-- 大雨 -->
<i class="qi-901"></i> <!-- 冷 -->

获取访问者 IP ​

无需任何参数,访问即返回当前请求者的网络 IP 地址。

  • 方法: GET
  • 路径: /api/web/tools/my-ip
  • 参数: 无

请求示例 ​

bash
GET /api/web/tools/my-ip

响应示例 ​

json
{
  "ip": "59.42.7.147"
}

字段说明 ​

字段说明
ip当前请求者的网络 IP 地址

IP 解析顺序

为兼容反向代理(如 Nginx / CDN),接口按以下顺序解析真实 IP:

  1. X-Forwarded-For 首段(形如 client, proxy1, proxy2,取第一个非空段)
  2. X-Real-IP
  3. request.ip(Fastify 直连 IP)

本地开发提示

本地开发环境下访问返回的通常是 127.0.0.1 或 ::1,部署到服务器并经过反向代理后才会返回真实公网 IP。

GET在线测试

IP 归属查询 ​

查询 IP 归属地信息(国家、省份、城市、区县、运营商、经纬度等)。

  • 方法: GET
  • 路径: /api/web/tools/ip-query
  • 数据源: 主数据源 https://ip9.com.cn(省/市/运营商/经纬度);补充数据源 https://openapi.lddgo.net(补全省/市/区县全称,合并到 detail 字段)

请求参数 (Query) ​

参数类型必填说明
ipstring是IPv4 地址,如 59.42.7.147

请求示例 ​

bash
GET /api/web/tools/ip-query?ip=59.42.7.147

响应示例 ​

json
{
  "ip": "59.42.7.147",
  "country": "中国",
  "country_code": "cn",
  "prov": "广东",
  "city": "广州",
  "city_code": "guangzhou",
  "city_short_code": "gz",
  "area": "",
  "post_code": "511400",
  "area_code": "020",
  "isp": "中国电信",
  "lng": "113.38",
  "lat": "22.94",
  "long_ip": 992610195,
  "big_area": "华南",
  "detail": {
    "location": "广东省 广州市 番禺区",
    "province": "广东省",
    "city": "广州市",
    "district": "番禺区"
  }
}

字段说明 ​

字段说明
ip查询的 IP 地址
country / country_code国家 / 国家代码
prov省份(简称),如 广东
city / city_code城市(简称)/ 城市拼音,如 广州 / guangzhou
area区县(主数据源字段,多数情况为空字符串,区县请优先使用 detail.district)
post_code邮编
area_code区号
isp运营商
lng / lat经度 / 纬度
big_area大区,如 华南
detaillddgo 补充的完整归属地对象;补充数据源不可用时该字段可能不存在

detail 对象字段:

字段说明
location完整归属地(空格分隔),如 广东省 广州市 番禺区;海外 IP 可能只有国家名
province省份全称,如 广东省
city城市全称,如 广州市
district区/县全称,如 番禺区(海外或机房 IP 可能为空字符串)

区县取值建议

主数据源 area 基本恒为空,前端展示区/县时请按 area → detail.district → 从 detail.location 末段解析 的顺序兜底。 prov/city 为简称,detail.province/detail.city 为全称,按需取用并注意去重。

GET在线测试

天气信息查询 ​

查询城市天气信息,含今日与明日的天气状况、气温、空气质量(AQI)、16 天预报及气象预警。返回数据已自动为天气状况文字匹配和风天气图标 code。

  • 方法: GET
  • 路径: /api/web/tools/weather
  • 数据源: https://jk.lllt.top/api/WeatherInfo

请求参数 (Query) ​

参数类型必填说明
citystring是城市名,如 乐平

请求示例 ​

bash
GET /api/web/tools/weather?city=乐平

响应示例(节选) ​

json
{
  "city": "乐平",
  "ip": "120.235.157.77",
  "tips": "略微偏热,注意衣物变化。",
  "low_temperature": 23,
  "moji_city_id": 1293,
  "night_condition": "多云",
  "night_condition_code": 101,
  "night_condition_icon": "qi-101",
  "night_condition_codes": [101],
  "night_condition_icons": ["qi-101"],
  "quality_level": "优",
  "tomorrow_aqi": 40,
  "tomorrow_condition": "多云",
  "tomorrow_condition_code": 101,
  "tomorrow_condition_icon": "qi-101",
  "tomorrow_condition_codes": [101],
  "tomorrow_condition_icons": ["qi-101"],
  "tomorrow_high_temperature": 33,
  "tomorrow_low_temperature": 23,
  "tomorrow_quality_level": "优",
  "tomorrow_weather_icon_id": "1",
  "update_time": "2026-09-13 23:07:52",
  "today": {
    "current_temp": "26℃",
    "current_cond": "晴",
    "current_cond_code": 100,
    "current_cond_icon": "qi-100",
    "night_condition": "多云",
    "night_condition_code": 101,
    "night_condition_icon": "qi-101",
    "tomorrow_condition": "多云",
    "tomorrow_condition_code": 101,
    "tomorrow_condition_icon": "qi-101",
    "low": "23℃",
    "quality": "优",
    "alert": "暂无预警信息",
    "update_time": "2026-09-13 22:45:05"
  },
  "seven_day": [
    {
      "date": "2026-09-13",
      "cond": "多云",
      "cond_code": 101,
      "cond_icon": "qi-101",
      "cond_codes": [101],
      "cond_icons": ["qi-101"],
      "high": "34℃",
      "low": "23℃"
    },
    {
      "date": "2026-09-15",
      "cond": "多云转晴",
      "cond_code": 101,
      "cond_icon": "qi-101",
      "cond_codes": [101, 100],
      "cond_icons": ["qi-101", "qi-100"],
      "high": "34℃",
      "low": "23℃"
    }
  ]
}

字段说明 ​

顶层字段:

字段类型说明
citystring查询的城市名
ipstring上游接口识别到的请求方 IP
tipsstring生活提示(穿衣、降雨提醒等),无降雨提示时仅含温度提示
low_temperaturenumber今日最低温(数值,单位 ℃)
moji_city_idnumber墨迹天气城市 ID
night_conditionstring今日夜间天气状况文字
quality_levelstring今日空气质量等级,如 优
tomorrow_conditionstring明日天气状况文字
tomorrow_aqinumber明日空气质量指数(AQI)
tomorrow_high_temperaturenumber明日最高温(数值,单位 ℃)
tomorrow_low_temperaturenumber明日最低温(数值,单位 ℃)
tomorrow_quality_levelstring明日空气质量等级,如 优
tomorrow_weather_icon_idstring明日天气的上游图标编号(字符串)
update_timestring数据更新时间,格式 YYYY-MM-DD HH:mm:ss
todayobject今日天气详情,见下表
seven_dayarray逐日预报,固定返回 16 天(含昨日、今日及未来 14 天)

today 对象字段:

字段类型说明
current_tempstring当前温度,如 26℃
current_condstring当前天气状况文字
night_conditionstring今日夜间天气状况文字
tomorrow_conditionstring明日天气状况文字
lowstring今日最低温,如 23℃
qualitystring今日空气质量等级,如 优
alertstring气象预警文本;无预警时固定为 暂无预警信息
update_timestring今日天气数据更新时间

seven_day 数组元素字段:

字段类型说明
datestring日期,格式 YYYY-MM-DD
condstring当日天气状况文字(可能为组合天气,如 多云转晴)
highstring当日最高温,如 34℃
lowstring当日最低温,如 23℃

温度字段两种形态

  • 顶层 low_temperature、tomorrow_high_temperature、tomorrow_low_temperature 为 number(不带 ℃)
  • today.current_temp、today.low 与 seven_day[].high/low 为 string(带 ℃ 后缀)

图标字段说明 ​

接口会为以下天气状况字段自动补充图标信息:

原字段补充字段说明
night_conditionnight_condition_code / night_condition_icon / night_condition_codes / night_condition_icons夜间天气
tomorrow_conditiontomorrow_condition_code / tomorrow_condition_icon / tomorrow_condition_codes / tomorrow_condition_icons明日天气
today.current_condcurrent_cond_code / current_cond_icon / …当前天气
today.night_conditionnight_condition_code / night_condition_icon / …今日夜间天气
today.tomorrow_conditiontomorrow_condition_code / tomorrow_condition_icon / …明日天气
seven_day[].condcond_code / cond_icon / cond_codes / cond_icons每日天气

组合天气处理

当天气为「阵雨转中雨」这类组合天气时:

  • *_code / *_icon:取第一段(阵雨 300),用于主图标渲染
  • *_codes / *_icons:包含全部段 [300, 306],可用于渲染过渡动画或多图标
html
<!-- 主图标 -->
<i class="qi-300"></i>
<!-- 全部段图标 -->
<i class="qi-300"></i> → <i class="qi-306"></i>

天气状况与图标 code 对照表 ​

code中文code中文code中文
100晴302雷阵雨404雨夹雪
101多云303强雷阵雨405雨雪天气
102少云304雷阵雨伴有冰雹406阵雨夹雪
103晴间多云305小雨407阵雪
104阴306中雨408小到中雪
300阵雨307大雨409中到大雪
301强阵雨308极端降雨410大到暴雪
309毛毛雨/细雨310暴雨499雪
313冻雨311大暴雨500薄雾
314小到中雨312特大暴雨501雾
315中到大雨399雨502霾
316大到暴雨400小雪503扬沙
317暴雨到大暴雨401中雪504浮尘
318大暴雨到特大暴雨402大雪507沙尘暴
900热403暴雪508强沙尘暴
901冷509浓雾510强浓雾
999未知511中度霾512重度霾
513严重霾514大雾515特强浓雾
GET在线测试

通用说明 ​

统一响应格式

所有接口响应均由 formatDatas 统一包装:

json
{
  "code": 200,
  "data": { ... },
  "message": "success"
}

上游接口依赖

/ip-query 与 /weather 为代理请求第三方 API,响应速度取决于上游服务。如上游异常,接口会返回 statusCode: 502 及错误信息。/my-ip 直接解析请求头,不依赖外部服务。