访客信息 API

返回调用者的 IP、归属地、浏览器、系统、设备类型、首选语言与请求时间

数据来源:本地解析 + ip2region 离线库 / ip-api.com(归属地)

返回统一的 JSON 格式 { code, message, cached, stale, updatedAt, data },支持跨域,免注册每天可免费调用 100 次,注册后每天 10000 次。

查看我的 IP、归属地与浏览器信息

GET /api/visitor

请求参数

  • geo:是否查询 IP 归属地:1 查询,0 不查(location 为 null,响应更快),示例 0

返回字段

  • ip(string|null):调用者 IP(IPv4 映射的 IPv6 地址会还原为 IPv4);服务部署在反向代理后且未开启 TRUST_PROXY 时是代理的地址;取不到时为 null
  • location(object|null):IP 归属地(与 /api/ip 相同:国内 IPv4 查本地 ip2region 离线库,其余查 ip-api.com 并缓存 6 小时)。内网/保留地址、参数 geo=0、查询失败或超过 3 秒未返回时为 null,不会报错
  • location.text(string|null):拼接好的归属地:国家、省、市依次以空格连接,如 "中国 广东 深圳";上游没有任何地名时为 null
  • location.country(string|null):国家(中文),如 中国
  • location.region(string|null):省/州,如 广东;上游未返回时为 null
  • location.city(string|null):城市,如 深圳;上游未返回时为 null
  • location.isp(string|null):运营商/ISP 名称:本地库命中时为中文(如 中国电信),来自 ip-api 时多为英文(如 Chinanet);未知时为 null
  • location.timezone(string|null):所在时区(IANA 名称),如 Asia/Shanghai;未返回时为 null
  • ua(string):请求头 User-Agent 原文(去掉首尾空白,最多 2000 个字符);没有该请求头时为空字符串
  • browser(object):浏览器(含微信、QQ 等 App 内置浏览器)
  • browser.name(string|null):浏览器名称:Chrome、Edge、Firefox、Safari、Opera、Opera Mini、WeChat(微信)、WeCom(企业微信)、QQ(手机 QQ)、QQ Browser、UC Browser、Quark(夸克)、Baidu App(百度 App)、Huawei Browser、Mi Browser(小米)、Samsung Internet、vivo Browser、OPPO Browser、360 Browser、Sogou Explorer、DingTalk、Alipay、Yandex、Vivaldi、IE、IE Mobile、Chromium、Android WebView、WebView(iOS App 内嵌网页);识别不出(包括 curl 等非浏览器客户端)时为 null
  • browser.version(string|null):UA 中的完整版本号,如 128.0.6613.120;Chrome 等启用了 UA 精简的浏览器只给出主版本(如 128.0.0.0);没有版本号时为 null
  • browser.major(string|null):主版本号(version 第一个点之前的部分),如 128;没有版本号时为 null
  • engine(object):渲染引擎
  • engine.name(string|null):引擎名称:Blink(Chrome 28 起及其衍生浏览器)、WebKit(Safari 以及 iOS 上的所有浏览器)、Gecko(Firefox)、Trident(IE)、EdgeHTML(旧版 Edge)、Presto(旧版 Opera);识别不出时为 null
  • engine.version(string|null):引擎版本:Blink 取 Chrome 版本号,WebKit 取 AppleWebKit 版本号,Gecko 取 rv 版本号;识别不出时为 null
  • os(object):操作系统
  • os.name(string|null):系统名称:Windows、Windows Phone、macOS、iOS、iPadOS(iPad 且系统版本 ≥ 13)、Android、HarmonyOS(鸿蒙,含基于 Android 的 2~4 版和 OpenHarmony 内核的 NEXT)、Linux、ChromeOS;识别不出时为 null
  • os.version(string|null):系统版本(点分隔):Windows 按内核版本映射,NT 10.0 → 10/11(UA 无法区分 10 和 11)、6.3 → 8.1、6.2 → 8、6.1 → 7、6.0 → Vista、5.1/5.2 → XP;macOS 如 10.15.7(新版 Safari、Chrome 固定报告 10.15.7,不代表真实版本);HarmonyOS NEXT 为 OpenHarmony 版本号;ChromeOS 为平台版本号;Linux 和没有版本号时为 null
  • device(object):设备
  • device.type(string):设备类型:desktop(电脑,也是无法判断时的默认值)、mobile(手机)、tablet(平板:iPad、不带 Mobile 标记的 Android/鸿蒙设备等;iPadOS 13+ 默认请求桌面版网页时会被识别为 desktop)、bot(爬虫或脚本)
  • device.vendor(string|null):设备厂商:Apple、Samsung、Google、Huawei、Honor、Xiaomi、OPPO、vivo、OnePlus、realme、Meizu、Motorola;按型号前缀和 UA 特征推断,识别不出时为 null
  • device.model(string|null):设备型号:iPhone、iPad、iPod touch、Mac,或 Android UA 中的型号(如 SM-S9210、23116PN5BC);Chrome 精简 UA 中的占位型号 K 和识别不出时为 null
  • isBot(boolean):是否为爬虫或脚本:搜索引擎爬虫(Googlebot、Baiduspider、bingbot、YandexBot、Sogou Spider、360Spider、Bytespider 等)、社交/AI 爬虫(facebookexternalhit、GPTBot、ClaudeBot 等)、无头浏览器、curl、python-requests 等 HTTP 库,以及名称以 bot/spider/crawler 结尾的未知爬虫;UA 为空时也为 true
  • bot(string|null):爬虫或脚本名称,如 Googlebot、Baiduspider、bingbot、curl;UA 为空时为 unknown;isBot 为 false 时为 null
  • language(string|null):Accept-Language 请求头里的首选语言(q 值最高的一个,同权重取靠前的),如 zh-CN;没有该请求头或无法解析时为 null
  • languages(array):Accept-Language 里的全部语言标签(字符串数组),按 q 值从高到低排序、去重,最多 10 个,不含 * 和 q=0;没有时为空数组
  • time(string):服务器收到请求的时间,ISO 8601 格式的 UTC 时间(带 3 位毫秒),如 2026-09-24T08:00:00.000Z
  • beijingTime(string):同一时刻的北京时间(UTC+8),格式 YYYY-MM-DD HH:mm:ss