登录
已读 0%
编程IDEAS & NOTES

nodejs查询ip信息

使用request-ip包获取用户访问的ip,然后通过太平洋网络IP地址查询Web接口来获取ip的具体信息,地区,电信运营商等。

其中解析太平洋网络IP地址接口的时候需要对其返回的内容使用iconv-lite包进行解码,否则node储存会乱码。

具体代码:

const request = require('request') const Iconv = require('iconv-lite') const setQueryUrl = ip => { const queryIpUrl = 'http://whois.pconline.com.cn/ipJson.jsp?ip' return `${queryIpUrl}=${ip}&json=true` } const queryIpInfo = (ip = '') => { return new Promise((resolve, reject) => { request.get( { url: setQueryUrl(ip), encoding: null }, function(error, response, body) { let charset = response.headers['content-type'].match(/(?:charset=)(\w+)/)[1] || 'utf8' const buff = Iconv.decode(body, charset) if (error) { resolve(null) } else { resolve(JSON.parse(buff)) } } ) }) } module.exports = queryIpInfo

读到这里,感谢你的时间。

把这篇文章,分享给同样好奇的人。

由 helti 发布 · 本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

KEEP EXPLORING
全部文章

编程

uni-app + Vue 3 微信小程序开发入门指南

2026.07.27655 次阅读

编程

在 Linux 系统中如何使用 yum 安装 nginx?

2024.09.251,581 次阅读

编程

把服务器迁移到阿里云了

2021.09.2216,867 次阅读