公共IP NPM软件包在数字海洋服务器中不起作用



我已经使用了public-ip NPM软件包获取用户的公共IP地址,它提供了与http://whath whateismyipaddress.com相同的公共IP地址,但是在使用它时在数字海洋服务器中,它为我提供了数字海洋IP地址,而不是用户的公共IP地址。

我已经在nodejs上尝试过。

const publicIp = require('public-ip');
const ip = await publicIp.v4(); //to save ip in user

我想要用户的公共IP地址,而不是获取数字海洋IP地址。

只是查询 https://api.ipify.org/

// web
let xhr = new XMLHttpRequest();
xhr.open('GET', 'https://api.ipify.org');
xhr.send();
xhr.onload = function() {
  if (xhr.status != 200) {
    console.log(`Error ${xhr.status}: ${xhr.statusText}`); // e.g. 404: Not Found
  } else { // show the result
    console.log(xhr.response)
  }
};
// nodejs
const https = require('https');
https.get('https://api.ipify.org', (resp) => {
  let data = '';
  // A chunk of data has been recieved.
  resp.on('data', (chunk) => {
    data += chunk;
  });
  // The whole response has been received. Print out the result.
  resp.on('end', () => {
    console.log(JSON.parse(data));
  });
}).on("error", (err) => {
  console.log("Error: " + err.message);
});

此功能publicIp.v4()public-ip模块将帮助您获得(检测(运行的服务器或计算机的公共IP(不是用户的IP(。数字海洋返回其公共IP的价值是正确的。

在您的情况下,您需要从用户的请求中检索用户的IP,可以调用远程客户端IP地址。最好检查此问题Express.js:如何获取远程客户端地址

希望它能有所帮助。

相关内容

  • 没有找到相关文章

最新更新