使用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
本文采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
在Linux系统中,使用yum来安装Nginx的步骤如下:具体步骤更新软件包仓库:确保你的软件包仓库是最新的。运行以下命令来更新:<sp
之前贪便宜花了几百块买了华为云的ecs服务器,服务运行了一年多懒得换,但是最近华为云要求域名必须在华为云备案才可以解析,否则域名解析会被做阻断处理,于是索性把服务迁移到阿里云,毕竟阿里云的服务比华为云强的不是一点。linux用的不是很熟,尤其是装一些必备的服务,这次做个笔记...
俄罗斯方块是一款经典的拼图游戏,其核心算法包含方块生成、方块移动、旋转、碰撞检测等功能。我们这里重点介绍方块生成的算法,并使用JavaScript实现它。1.方块生成逻辑俄罗斯方块中的方块称为「Tetrominoes」,一共有7种不同的形状,每种形状由4个方块组成。它们通常...