【问题标题】:How to get My PUBLIC IP address Using Node js如何使用 Node js 获取我的公共 IP 地址
【发布时间】:2022-02-06 22:31:27
【问题描述】:

我只想使用 Node js 获取我的公共 IP 地址

例如,当我在 Google 上搜索“我的 IP 地址是什么”时

给我像 10X.XX.XX.XXX 这样的输出

如何在不导入任何库(如 ip、Public-ip 等)的情况下使用节点 js 获取此 IP 地址...

我想编写我的自定义代码来获取公共 ip 而不向其他网站发送请求,例如 whatismyipaddress.com 、 ipconfig.com 等...

【问题讨论】:

  • 你可以查看这个问题stackoverflow.com/q/20273128/5146848
  • 这能回答你的问题吗? How to get client's IP address using JavaScript?
  • @StevenSpungin 不,我想编写自定义代码来获取公共 IP 地址
  • @SifatHaque 使用这些方法我正在获取我的 wifi-->properties-->IPv4 地址不是我的公共 IP 地址,当我在谷歌上搜索“我的 IP 地址是什么”时可以查看它跨度>
  • 您需要按照说明连接到远程站点。该链接中的 URL 就是这样做的。公共 IP 与客户端 IP 相同,不是吗?你想要你的域名吗?

标签: javascript node.js


【解决方案1】:
const { exec } = require('child_process')

exec('curl ip-adresim.app', function(error, stdout, stderr){
    if(error)
        return;
    console.log('your ip is :'+ stdout);
})

您可以运行命令并获得 curl 或 ping 等输出

【讨论】:

  • 是否支持所有设备?
  • 是的,我认为 curl 在所有操作系统中都受支持,如果未预装,您可以安装它
【解决方案2】:

没有本地获取公共IP的方法,事实上,没有办法从你的服务器获取它,甚至从Linux命令都没有,你必须询问外部服务器,而这个包正是这样做的不同的服务器。

我了解您不想询问外部库或外部服务器,但您别无选择。

我建议使用外部库,因为它会在一个离线的情况下询问多台服务器而不是只询问一个

你可以试试这个package 效果很好

【讨论】:

  • @Meedah 使用哪种编程语言可以编写我的自定义代码
  • 我不完全理解这个问题。你标记了这个问题 nodejs,所以我提供了一个 nodeJs 的代码,但是你可以用任何你想要的语言编写它
  • 我的意思是说如果 node.js 无法做到这一点,那么 wjich 语言会使用 whatismyipaddress.com 、 ipconfig.com 等来获取用户的公共 IP 地址?
  • 这与语言无关,在您的计算机上,您看不到您的公共 IP,这是您的路由器知道的,当您联系另一台服务器(可能在 nodejs 上运行)时,他们会知道您的公共 IP 地址,因为实际上发生的是您的计算机向路由器发送请求,然后路由器将其发送到终端服务器。这就是为什么最终服务器可以看到您的路由器的 IP 地址(您的公共 IP)而不是您的计算机
  • 无论是哪种语言,您都必须阅读并查看您的路由器是否允许您直接读取您的公共 IP(我提到这种情况只是为了彻底而不被其他用户标记在 StackOverflow 上,但你可能不需要这个),或者让另一个服务器告诉你你的公共 ip 是什么
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-27
  • 2011-03-16
  • 2016-12-15
  • 2014-05-31
  • 2012-05-25
  • 2020-11-25
  • 2017-09-23
相关资源
最近更新 更多