nodejs自带的获取ip的一些api,获取的都是用户本地的ip,
不是公网ip(public ip),公网ip只有在用户连入internet后才会有,
获取用户公网ip,一般的方法是通过一些收费的ip库获取,
同样也有一些免费获取自己公网ip的方法。
http://icanhazip.com/,是国外的一个免费获取ip的地址,只要访问这个地址就会返回用户自己的公网ip
上述网址是国外的网站,有时候可能响应较慢,国内也有很多免费获取公网ip的网站,
比如sohu的一个网址,http://txt.go.sohu.com/ip/soip,
只是这个网站访问后返回的内容比较多,需要自己筛选出其中的公网ip,
大概的思路是通过正则表达式获取返回内容中的ip地址
综上,封装了一个npm包,qiao-get-ip,qiao-get-ip - npm
主要功能:
使用方法也很简单:
'use strict';
var q = require('qiao-get-ip');
var test = async function(){
try{
var ip = await q.getIp();
console.log(ip);
}catch(e){
console.log(e);
}
};
test();