1. 什么是 caddress
caddress 是一个 npm 包,可以根据 IP 地址查询其所在地的信息,包括国家、省份、城市、县区、经度、纬度等。caddress 所查询的数据来源于 ip-api.com。
2. 安装 caddress
caddress 可以通过 npm 安装,打开终端并输入以下命令:
npm install caddress
3. 使用 caddress
3.1 引入 caddress
安装完成之后,我们需要在代码中引入 caddress,可以使用以下代码:
const caddress = require('caddress');
3.2 查询 IP 地址所属地区
使用 caddress 的最常见场景是查询一个 IP 地址所属的国家、省份、城市等信息。下面是一个例子:
-- -------------------- ---- ------- ----- -------- - -------------------- ------------------- --------- -- - ----------------- -- ---------- -- - ----------------- ---
运行上述代码,我们可以得到以下结果:
-- -------------------- ---- ------- - --------- ---------- ---------- ------- -------- -------------- ----- --------- ----- ------------- ------------- ------- --------- ------ ------ -------- ------ -------- ------ ---------- ----------- ---------------------- ------ ------- ----- ------ ------- ------ ----- ----- -------- ------ ----- -------- --------- -
我们可以看到,8.8.8.8 所属的国家是美国,省份为加利福尼亚州(CA),城市为山景城(Mountain View)等详细信息。
3.3 查询当前本机的 IP 地址
如果我们想查询当前本机所用的 IP 地址所属的地区信息,可以使用如下代码:
-- -------------------- ---- ------- ----- -------- - -------------------- ---------- --------- -- - ----------------- -- ---------- -- - ----------------- ---
运行之后,我们可以得到类似下面的结果:
-- -------------------- ---- ------- - --------- ---------- ---------- -------- -------------- ----- --------- ----- ------------- ---------- ------- ---------- ------ --- ------ -------- ------ --------- ----------- ---------------- ------ --- ------ --- ----- --- -------- ---------------- -
我们可以看到,查询的 IP 地址为 223.99.251.157,所属的国家为中国,所在的省份为北京,经度和纬度分别为 116.4074 和 39.9042。
3.4 针对查询失败进行处理
当我们查询一个非法的 IP 地址时,或因为网络问题无法访问 IP 地址查询接口时,caddress 可能会返回错误信息。为了不让程序崩溃,我们需要在代码中对查询失败情况进行处理。下面是一个处理方法:
-- -------------------- ---- ------- ----- -------- - -------------------- ------------------- --------- -- - ----------------- -- ---------- -- - ----------------- ---
上述代码中,我们查询的是一个不存在的 IP 地址(1.1.1.1),因此 caddress 会返回以下结果:
{ "status": "fail", "message": "1.1.1.1 is not a valid IP address" }
为了避免程序崩溃,我们在代码中使用了 catch 块来处理查询失败的情况。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066c90ccdc64669dde5849