介绍
@lxe/maxmind-db-reader 是一个 npm 包,可以帮助我们读取并解析 MaxMind 公司的 GeoIP2 数据库文件。这个包使用 TypeScript 编写,具有良好的类型定义,并附带了详细的 API 文档。
MaxMind 公司提供的 GeoIP 数据库可以帮助我们通过 IP 地址获取对应的地理位置信息,包括国家、省份、城市、经纬度等。在前端开发中,我们可以将这些信息用于不同的应用场景,例如匹配语言、显示定位位置等。
安装
可以通过 npm 安装 @lxe/maxmind-db-reader:
npm install @lxe/maxmind-db-reader
使用
初始化
首先,我们需要将 GeoIP2 数据库文件读入内存,并初始化 Reader:
import { Reader } from '@lxe/maxmind-db-reader'; import { join } from 'path'; const dbPath = join(__dirname, 'GeoIP2-City.mmdb'); const reader = new Reader(dbPath);
查找 IP 地址信息
然后,我们就可以查找 IP 地址对应的信息,例如:
const ipInfo = reader.findInfoByIP('2401:4900:5c5a:a9e9:a023:baff:fea8:2ad4'); console.log(ipInfo);
输出的结果为:
{ country: { isoCode: 'TW' }, city: { names: { en: 'Taipei' } }, location: { latitude: 25.0478, longitude: 121.5319 } }
关闭 Reader
最后,在不使用 Reader 时,我们需要手动关闭它,以释放内存:
reader.close();
示例代码
下面是一个使用 @lxe/maxmind-db-reader 查找 IP 地址信息的例子:
-- -------------------- ---- ------- ------ - ------ - ---- ------------------------- ------ - ---- - ---- ------- ----- ------ - --------------- -------------------- ----- ------ - --- --------------- ----- ------ - --------------------------------------------------------------- -------------------- ---------------
结语
@lxe/maxmind-db-reader 是一个方便易用的 npm 包,可以帮助我们快速获取 IP 地址的地理位置信息。希望本篇文章对读者有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056ea181e8991b448e76a0