Nodejs获取IP地理地址和免费接口

一、前言

获取IP地理地址是一个网站或程序开发中经常需要的功能。它可以帮助我们了解访问者的地理位置,对于提升用户体验、优化市场推广、实现本地化等功能具有重要意义。例如,一个电商网站可以根据用户的地理位置来调整页面语言,推荐适合的商品;一个广告平台可以根据用户的地理位置来定向投放广告。

文章地址(到此提问):https://xygeng.cn/post/309

二、实例

在Node.js中,我们可以使用第三方库来获取IP地理地址。其中一个常用的库是ip2region。以下是一个简单的示例代码:

import IP2Region, { IP2RegionResult } from 'ip2region';
import path from 'path';

/**
 * 服务
 */
const ipService = new IP2Region({
  ipv4db: path.join(process.cwd(), './data/ip2region.db'),
  ipv6db: path.join(process.cwd(), './data/ipv6wry.db'),
  disableIpv6: true
});
const result = ipService.search(ip);

这个示例代码创建了一个HTTP服务器,当客户端访问服务器时,服务器会获取客户端的IP地址,并使用ip2region库查询IP的地理信息。如果查询成功,服务器将返回一个包含IP地址和地理信息

三、免费获取IP地理地址的接口

除了使用第三方库,还可以使用一些免费提供的API接口来获取IP地理地址。以下是我开发使用的接口

POST请求地址 (只支持post请求)

https://api.xygeng.cn/openapi/ip/getInfo

详细使用文档

https://docs.xygeng.cn/docs/ip.html

// js演示
var axios = require('axios');
var data = JSON.stringify({
  ip: '116.119.168.152'
});

// 注意只支持post请求
var config = {
  method: 'post',
  url: 'https://api.xygeng.cn/openapi/ip/getInfo',
  headers: {
    'Content-Type': 'application/json',
  },
  data: data
};

axios(config)
  .then(function (response) {
    console.log(JSON.stringify(response.data));
  })
  .catch(function (error) {
    console.log(error);
  });

返回结果:
{
  "code": 200,
  "data": {
    "country": "印度",
    "city": "",
    "province": "德里国家首都辖区",
    "isp": "印度电信"
  },
  "error": null,
  "updateTime": 1702634088798
}
  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值