[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"$f7td3rzwi6ujm":3},"\u003Ch1 id=\"api-获取客户端公网-ip-及位置\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#api-获取客户端公网-ip-及位置\">\u003Cspan>[API] 获取客户端公网 IP 及位置\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh1>\n\u003Ch2 id=\"1-接口描述\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#1-接口描述\">\u003Cspan>1. 接口描述\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cblockquote>\n\u003Cp>IP 库来源于网络,本项目不对结果的准确性负责,请在中国法律许可范围内使用.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>接口地址： \u003Ccode>https:\u002F\u002Fcn-jiangsu.api-ipw.wsmdn.top\u002Fv1\u002Flocation\u003C\u002Fcode>（公开实例，见 1.1；换成你自己节点的域名同样可用）\u003C\u002Fp>\n\u003Cp>请求方法：\u003Ccode>GET\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>用途：取\u003Cstrong>请求方自己\u003C\u002Fstrong>的公网 IP，并给出 IP 归属地。\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>不带参数\u003C\u002Fstrong>：用服务端看到的客户端地址（Go \u003Ccode>gin\u003C\u002Fcode> 的 \u003Ccode>ClientIP()\u003C\u002Fcode>），因此&quot;查自己&quot;只需这一个请求。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>多源聚合，不合并\u003C\u002Fstrong>：返回 10 个 IP 库各自的结论，按源名分组，便于交叉比对；本项目不替你做&quot;以哪个源为准&quot;的判断。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>只查本地库\u003C\u002Fstrong>：不依赖任何第三方在线查询接口（唯一例外是 \u003Ccode>bilibili\u003C\u002Fcode> 源，24 小时缓存）。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>免鉴权\u003C\u002Fstrong>：节点未配 \u003Ccode>access-token\u003C\u002Fcode> 时公开可访问；配了则需带 \u003Ccode>Authorization: Bearer &lt;access-token&gt;\u003C\u002Fcode>。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cblockquote>\n\u003Cp>本接口属于&quot;业务探测&quot;端点，请求会被节点计入统计并周期上报收集中心（不落库明细）。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3 id=\"11-公开实例\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#11-公开实例\">\u003Cspan>1.1 公开实例\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>本项目对外开放了一个江苏节点，可以直接用它把本接口调通，\u003Cstrong>无需令牌\u003C\u002Fstrong>：\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>方式\u003C\u002Fth>\n\u003Cth>地址\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>直连节点（推荐）\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>https:\u002F\u002Fcn-jiangsu.api-ipw.wsmdn.top\u002Fv1\u002Flocation\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>经中间件转发\u003C\u002Ftd>\n\u003Ctd>\u003Cstrong>不适用\u003C\u002Fstrong>——中间件路径的最后一段（拨测目标）必须非空，而本接口没有目标参数\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cblockquote>\n\u003Cp>公共实例是\u003Cstrong>共享\u003C\u002Fstrong>的，调试与小流量接入没问题，请勿高频轮询、批量抓取，也不要拿它当线上服务的依赖。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3 id=\"12-还有别的节点--拨测控制台\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#12-还有别的节点--拨测控制台\">\u003Cspan>1.2 还有别的节点 —— 拨测控制台\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>上面的江苏节点只是节点池里的一个。节点池的入口是拨测控制台 \u003Ca href=\"https:\u002F\u002Fboce.wsmdn.top\">https:\u002F\u002Fboce.wsmdn.top\u003C\u002Fa>：\n登录后进「可用节点」页，能看到\u003Cstrong>全部已启用节点\u003C\u002Fstrong>的节点标识、归属地、归属池（定位 \u002F 拨测）、\n协议栈与在线状态，并附上每个节点的调用前缀。\u003C\u002Fp>\n\u003Cp>比自己搭一套省事的地方：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>节点现成\u003C\u002Fstrong> —— 名单里的节点都是已经部署好的，不用自己找机器、装程序、配隧道。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>入口现成\u003C\u002Fstrong> —— 统一走 HTTPS 转发，证书与反向代理不用自己操心。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>一套规则调所有节点\u003C\u002Fstrong> —— 接口路径与返回结构完全一致，换节点只换地址。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>池与栈标得很清楚\u003C\u002Fstrong> —— 定位类请求走定位池，拨测类走拨测池，两个池都有的节点两种都能接。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>名单会自己更新\u003C\u002Fstrong> —— 新接入的节点自动出现在列表里，不需要改代码。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cblockquote>\n\u003Cp>本接口（&quot;查自己&quot;）\u003Cstrong>只能直连节点\u003C\u002Fstrong>：中间件路径的最后一段必须是拨测目标，而&quot;查自己&quot;没有目标参数，\n所以走中间件转发不适用。换别的节点时，把上例的 \u003Ccode>cn-jiangsu.api-ipw.wsmdn.top\u003C\u002Fcode>\n换成该节点的接入域名即可（节点标识见控制台的「可用节点」页）。\u003C\u002Fp>\n\u003Cp>节点有上下线，列表中会标出在线状态；离线节点调用会失败。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch2 id=\"2-输入参数\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#2-输入参数\">\u003Cspan>2. 输入参数\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>无。\u003C\u002Fp>\n\u003Ch2 id=\"3-输出参数\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#3-输出参数\">\u003Cspan>3. 输出参数\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>顶层是「源名 → 该源结果」的字典，另有 \u003Ccode>ip\u003C\u002Fcode> 回显请求方地址：\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>字段\u003C\u002Fth>\n\u003Cth>类型\u003C\u002Fth>\n\u003Cth>描述\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>ip\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>String\u003C\u002Ftd>\n\u003Ctd>请求方公网 IP（本节点视角）\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>ip2region\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Object\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>country\u003C\u002Fcode>\u002F\u003Ccode>administrative_area\u003C\u002Fcode>\u002F\u003Ccode>city\u003C\u002Fcode>（部分记录另带 \u003Ccode>isp\u003C\u002Fcode>）\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>ip2location\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Object\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>country\u003C\u002Fcode>\u002F\u003Ccode>country_code\u003C\u002Fcode>\u002F\u003Ccode>administrative_area\u003C\u002Fcode>\u002F\u003Ccode>city\u003C\u002Fcode>\u002F\u003Ccode>district\u003C\u002Fcode>\u002F\u003Ccode>zipcode\u003C\u002Fcode>\u002F\u003Ccode>latitude\u003C\u002Fcode>\u002F\u003Ccode>longitude\u003C\u002Fcode>\u002F\u003Ccode>timezone\u003C\u002Fcode>\u002F\u003Ccode>isp\u003C\u002Fcode>\u002F\u003Ccode>asn\u003C\u002Fcode>\u002F\u003Ccode>usagetype\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>ip2location_asn\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Object\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>asn\u003C\u002Fcode>\u002F\u003Ccode>as\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>qqwry\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Object\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>country\u003C\u002Fcode>\u002F\u003Ccode>country_code\u003C\u002Fcode>\u002F\u003Ccode>administrative_area\u003C\u002Fcode>\u002F\u003Ccode>city\u003C\u002Fcode>\u002F\u003Ccode>isp\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>maxmind_city\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Object\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>country\u003C\u002Fcode>\u002F\u003Ccode>country_code\u003C\u002Fcode>\u002F\u003Ccode>administrative_area\u003C\u002Fcode>\u002F\u003Ccode>city\u003C\u002Fcode>\u002F\u003Ccode>latitude\u003C\u002Fcode>\u002F\u003Ccode>longitude\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>maxmind_asn\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Object\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>asn\u003C\u002Fcode>\u002F\u003Ccode>org\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>dbip_city\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Object\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>country\u003C\u002Fcode>\u002F\u003Ccode>country_code\u003C\u002Fcode>\u002F\u003Ccode>administrative_area\u003C\u002Fcode>\u002F\u003Ccode>city\u003C\u002Fcode>\u002F\u003Ccode>latitude\u003C\u002Fcode>\u002F\u003Ccode>longitude\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>dbip_asn\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Object\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>asn\u003C\u002Fcode>\u002F\u003Ccode>org\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>geocn\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Object\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>division_code\u003C\u002Fcode>（中国行政区划码）\u002F\u003Ccode>administrative_area\u003C\u002Fcode>\u002F\u003Ccode>city\u003C\u002Fcode>\u002F\u003Ccode>isp\u003C\u002Fcode>\u002F\u003Ccode>type\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>bilibili\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Object\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>country\u003C\u002Fcode>\u002F\u003Ccode>administrative_area\u003C\u002Fcode>\u002F\u003Ccode>city\u003C\u002Fcode>\u002F\u003Ccode>isp\u003C\u002Fcode>\u002F\u003Ccode>latitude\u003C\u002Fcode>\u002F\u003Ccode>longitude\u003C\u002Fcode>（在线源）\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>取值约定：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>某源\u003Cstrong>未加载\u003C\u002Fstrong>时该键为字符串 \u003Ccode>&quot;not loaded&quot;\u003C\u002Fcode>；该源\u003Cstrong>查询出错\u003C\u002Fstrong>时为字符串 \u003Ccode>&quot;error: ...&quot;\u003C\u002Fcode>。\n单个源失败\u003Cstrong>不会\u003C\u002Fstrong>让整个请求失败——HTTP 状态码仍是 \u003Ccode>200\u003C\u002Fcode>。\u003C\u002Fli>\n\u003Cli>库里没有的字段返回空串 \u003Ccode>&quot;&quot;\u003C\u002Fcode>。IP2Location LITE 免费版缺失的字段（如 \u003Ccode>isp\u003C\u002Fcode>、\u003Ccode>asn\u003C\u002Fcode>）已统一过滤，不会出现 \u003Ccode>&quot;This parameter is unavailable&quot;\u003C\u002Fcode>。\u003C\u002Fli>\n\u003Cli>经纬度类型各源不一致：\u003Ccode>ip2location\u003C\u002Fcode> 是\u003Cstrong>字符串\u003C\u002Fstrong>，\u003Ccode>maxmind_*\u003C\u002Fcode> \u002F \u003Ccode>dbip_*\u003C\u002Fcode> 是\u003Cstrong>数字\u003C\u002Fstrong>；\u003Ccode>bilibili\u003C\u002Fcode> 也是字符串。\u003C\u002Fli>\n\u003Cli>ASN 带前缀与否各源不一致：\u003Ccode>maxmind_asn\u003C\u002Fcode> \u002F \u003Ccode>dbip_asn\u003C\u002Fcode> 形如 \u003Ccode>AS13335\u003C\u002Fcode>，\u003Ccode>ip2location_asn.asn\u003C\u002Fcode> 是裸数字 \u003Ccode>13335\u003C\u002Fcode>。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"4-示例\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#4-示例\">\u003Cspan>4. 示例\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Ch3 id=\"41-curl-获取本机公网-ip-及位置\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#41-curl-获取本机公网-ip-及位置\">\u003Cspan>4.1 cURL 获取本机公网 IP 及位置\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cpre class=\"shiki vitesse-dark\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode class=\"language-bash\">\u003Cspan class=\"line\">\u003Cspan style=\"color:#80A665\">curl\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> https:\u002F\u002Fcn-jiangsu.api-ipw.wsmdn.top\u002Fv1\u002Flocation\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>输出示例（节选）：\u003C\u002Fp>\n\u003Cpre class=\"shiki vitesse-dark\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode class=\"language-json\">\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B8A96577\">  \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">ip\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">1.1.1.1\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B8A96577\">  \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">ip2region\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">country\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">Australia\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">administrative_area\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">Queensland\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">city\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">Brisbane\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> },\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B8A96577\">  \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">ip2location\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B8A96577\">    \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">country\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">Australia\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">country_code\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">AU\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">administrative_area\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">Queensland\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B8A96577\">    \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">city\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">Brisbane\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">zipcode\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">4000\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">timezone\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">+10:00\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B8A96577\">    \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">latitude\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">-27.46754\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">longitude\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">153.02809\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">  },\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B8A96577\">  \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">maxmind_asn\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">asn\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">AS13335\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">org\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">Cloudflare, Inc.\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> },\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B8A96577\">  \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">dbip_city\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B8A96577\">    \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">country\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">澳大利亚\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">country_code\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">AU\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">administrative_area\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">New South Wales\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B8A96577\">    \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">city\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">Sydney\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">latitude\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#4C9A91\"> -33.8688\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">longitude\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#4C9A91\"> 151.209\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">  },\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B8A96577\">  \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">qqwry\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">country\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">澳大利亚\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">country_code\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">AU\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">administrative_area\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">city\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">isp\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">APNIC\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> },\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B8A96577\">  \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">geocn\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">division_code\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">0\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">isp\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">type\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> },\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B8A96577\">  \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">bilibili\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">country\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">CLOUDFLARE.COM\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">administrative_area\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">CLOUDFLARE.COM\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">city\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">isp\u003C\u002Fspan>\u003Cspan style=\"color:#B8A96577\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"42-python\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#42-python\">\u003Cspan>4.2 Python\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cpre class=\"shiki vitesse-dark\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode class=\"language-python\">\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\">#!\u002Fusr\u002Fbin\u002Fpython3\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">import\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\"> json\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">import\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\"> requests\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#DBD7CAEE\">r \u003C\u002Fspan>\u003Cspan style=\"color:#666666\">=\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\"> requests\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">get\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">https:\u002F\u002Fcn-jiangsu.api-ipw.wsmdn.top\u002Fv1\u002Flocation\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#DBD7CAEE\">data \u003C\u002Fspan>\u003Cspan style=\"color:#666666\">=\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\"> json\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">loads\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">r\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">text\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B8A965\">print\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">data\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">[\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">ip\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">])\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\">                                    # 本机公网 IP\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B8A965\">print\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">data\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">[\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">ip2location\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">][\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">country\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#DBD7CAEE\">      data\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">[\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">ip2location\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">][\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">administrative_area\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#DBD7CAEE\">      data\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">[\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">ip2location\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">][\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">city\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">])\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\">                   # 取某一个源\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B8A965\">print\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">data\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">[\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">maxmind_asn\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">][\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">org\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">])\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\">                    # 运营商 \u002F 组织\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"43-golang\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#43-golang\">\u003Cspan>4.3 Golang\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cpre class=\"shiki vitesse-dark\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode class=\"language-go\">\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">package\u003C\u002Fspan>\u003Cspan style=\"color:#5DA994\"> main\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">import\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> (\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#C98A7D77\">\t\"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">encoding\u002Fjson\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#C98A7D77\">\t\"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">fmt\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#C98A7D77\">\t\"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">io\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#C98A7D77\">\t\"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">net\u002Fhttp\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">func\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\"> main\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">()\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tresp\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> err\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> http\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Get\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">https:\u002F\u002Fcn-jiangsu.api-ipw.wsmdn.top\u002Fv1\u002Flocation\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">\tif\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> err\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> !=\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> nil\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#80A665\">\t\tpanic\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">err\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">\t}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">\tdefer\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> resp\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">Body\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Close\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">()\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tbody\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> _\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> io\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">ReadAll\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">resp\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">Body\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\">\t\u002F\u002F 各源字段不一致，逐源取用；此处只解出需要的部分\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">\tvar\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> result\u003C\u002Fspan>\u003Cspan style=\"color:#4D9375\"> map\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">[\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\">string\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">]\u003C\u002Fspan>\u003Cspan style=\"color:#5DA994\">json\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#5DA994\">RawMessage\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">\tif\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> err\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> json\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Unmarshal\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">body\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> &#x26;\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">result\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">);\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> err\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> !=\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> nil\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#80A665\">\t\tpanic\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">err\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">\t}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">\tvar\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> ip\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> string\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\t_\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> =\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> json\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Unmarshal\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">result\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">[\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">ip\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">],\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> &#x26;\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">ip\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">\tvar\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> loc\u003C\u002Fspan>\u003Cspan style=\"color:#4D9375\"> struct\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\t\tCountry\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> string\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> `\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">json:\"country\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">`\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\t\tCity\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\">    string\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> `\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">json:\"city\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">`\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">\t}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\t_\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> =\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> json\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Unmarshal\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">result\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">[\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">ip2location\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">],\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> &#x26;\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">loc\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tfmt\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Println\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">ip\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> loc\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">Country\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> loc\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">City\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"5-错误码\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#5-错误码\">\u003Cspan>5. 错误码\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>现象\u003C\u002Fth>\n\u003Cth>说明\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>404 page not found\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>该节点 \u003Ccode>ipdb\u003C\u002Fcode> 已关闭：IP 库不加载时 \u003Ccode>\u002Fv1\u002Flocation\u003C\u002Fcode>、\u003Ccode>\u002Fv1\u002Fasn\u002F:ip\u003C\u002Fcode> 路由不注册\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>401\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>节点配了 \u003Ccode>access-token\u003C\u002Fcode> 而未携带正确的 \u003Ccode>Authorization: Bearer &lt;access-token&gt;\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>全部源都是 \u003Ccode>&quot;error: ...&quot;\u003C\u002Fcode> \u002F \u003Ccode>&quot;not loaded&quot;\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>IP 库仍在下载\u002F加载，或本地库文件缺失。节点启动时自动拉取全套库（首次约 450MB），之后每 24h 更新一次\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>ip\u003C\u002Fcode> 是内网地址（如 \u003Ccode>10.x\u003C\u002Fcode>）\u003C\u002Ftd>\n\u003Ctd>直连节点、未经代理时看到的就是内网地址，属预期\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>ip\u003C\u002Fcode> 是代理\u002FCDN 的地址\u003C\u002Ftd>\n\u003Ctd>节点前置了 Nginx\u002FCDN 但未配 \u003Ccode>trusted-proxies\u003C\u002Fcode>，\u003Ccode>X-Forwarded-For\u003C\u002Fcode> 不被信任。配置方式见《节点 API 与协议参考》\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n",1790424748159]