Node.js - 如何在 Node.js 应用程序中获取我的外部 IP 地址?

2024-06-24

我正在使用 node.js,我需要获取由 ISP 提供的外部 IP 地址。

有没有办法在不使用类似服务的情况下实现这一目标http://myexternalip.com/raw http://myexternalip.com/raw ?

Thanks.


可以像在 Python 中一样获取外部 IP、连接到某个网站并从套接字连接获取您的详细信息:

const net = require('net');
const client = net.connect({port: 80, host:"google.com"}, () => {
  console.log('MyIP='+client.localAddress);
  console.log('MyPORT='+client.localPort);
});

*不幸的是,无法再找到原始的Python示例作为参考。


2019 年更新:使用内置的 http 库和公共 APIhttps://whatismyipaddress.com/api https://whatismyipaddress.com/api

const http = require('http');

var options = {
  host: 'ipv4bot.whatismyipaddress.com',
  port: 80,
  path: '/'
};

http.get(options, function(res) {
  console.log("status: " + res.statusCode);

  res.on("data", function(chunk) {
    console.log("BODY: " + chunk);
  });
}).on('error', function(e) {
  console.log("error: " + e.message);
});

在 Amazon AWS 服务器上使用 Node.js v0.10.48 进行测试

--
2021 年更新
ipv4bot 已关闭,这里是另一个公共 API:

var http = require('http');

http.get({'host': 'api.ipify.org', 'port': 80, 'path': '/'}, function(resp) {
  resp.on('data', function(ip) {
    console.log("My public IP address is: " + ip);
  });
});

--
2022 年更新
ChatGPT 使用 ipify 和 json 编写了更长的示例:*是的,我已经测试过它。https://gist.github.com/unitycoder/745a58d562180994a3025afcb84c1753 https://gist.github.com/unitycoder/745a58d562180994a3025afcb84c1753

更多信息https://www.ipify.org/ https://www.ipify.org/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js - 如何在 Node.js 应用程序中获取我的外部 IP 地址? 的相关文章

随机推荐

  • java.lang.ClassCastException:android.view.ViewGroup$LayoutParams 无法转换为 android.widget.RelativeLayout$LayoutParams

    我刚刚编辑了 XML 并将幻灯片菜单代码放入 XML 中 但出现错误
  • 在样式定义中使用@string资源

    我在 styles xml 文件中定义了类似以下内容 如下所示 但是Android由于使用 string fontExtraLarge而崩溃 我假设这是因为定义的顺序 但这合法吗 我可以使用样式 parent 属性来解决此问题 但对于只有一
  • 如何从 TabHost 中删除选项卡

    In a TabHost http developer android com reference android widget TabHost html小部件 我可以使用它的内容 意图 创建一个新选项卡TabHost addTab Tab
  • 删除 JTable 最后一行的问题

    这是我第一次在这里提问 所以如果有什么不合适的地方请原谅我 如果我的英语不是很好 请原谅 嗯 简而言之 目前我正在使用 Swing 开发一个 Java 桌面应用程序 但在使用 table 时遇到问题 我有行 每行都有一个用于删除该行的按钮
  • 有没有什么方法可以添加选项卡布局而不让活动扩展TabActivity?

    我想将选项卡添加到我的 Activity 的布局中 但我不希望该 Activity 扩展 TabActivity 中的例子http developer android com resources tutorials views hello
  • c中的字母相减

    我想知道如何在C中 减去字母 我的意思是 我有 2 个字母 a 和 c 我想执行 c a b 即 3 1 2 如何在 C 中获得相同的行为 我可以转换字母 gt 数字但如何管理长度有限字母表的 谢谢 您可以将字母视为数字 然后添加字母 a
  • 在Java中存储和搜索二维空间坐标的良好数据结构是什么

    我目前正在为一款游戏编写一个插件 其中一个功能包括设置由 2 个二维坐标定义的区域 矩形的左上和右下区域 然后 这些区域将被存储 并且将具有与每个区域相关联的各种其他数据 当玩家在世界上移动时 我需要仅根据玩家的坐标确定他何时进入这些区域之
  • 如何取消注册我的应用程序的文件格式?

    在 Windows 10 中的 Delphi 10 4 2 win 32 VCL 应用程序中 我注册了 ICO我的图形应用程序的文件格式使用DSiWin32 DSiRegisterUserFileAssoc https github com
  • 使用 iPhone 上传视频

    可以将视频上传到服务器吗 我知道图像是可能的 如果有人能指出我正确的方向 那就太好了 Thanks 2015 年 8 月编辑 这个答案现在已经严重过时了 在撰写本文时 选项并不多 而且视频的大小也相对较小 如果您现在正在考虑这样做 我会使用
  • 如何在 ASP.Net Web API 中为特定控制器启用 Windows 身份验证

    我想知道是否有一种方法可以仅为特定 ASP Net Web API 控制器的特定操作启用 Windows 身份验证 我的 Web API Web 服务有几个具有多种操作的控制器 但只有一个控制器的一个操作需要 Windows 身份验证 此
  • Scala 修饰符和类型参数化

    我正在创建一个记忆类 每个类都会记忆一个函数类型并具有以下定义 class MemoizedFunction1 T1 R f T1 gt R private this val cache mutable Map T1 R def apply
  • 如何在PHP框架中实现引导类?

    我正在制作自己的 MVC 框架 请不要对我投反对票 因为每个人都想制作一个框架 所以 我想制作一个引导类 就像我在许多框架中看到的那样 我之所以这样做是因为我决定通过开始从内部学习框架来进入下一个层次 但我在克服它们时遇到了一些问题 但我会
  • longjmp 应该恢复堆栈吗?

    据我了解 setjmp保存当前上下文 并在调用时恢复它longjmp 然而 下一段代码打印 15 我用 g 编译 没有任何优化 我是否误解了这个结构或者我错过了什么 include
  • 将 PDF 附加到另一个 PDF 文件的可用空间

    病毒帕特尔的教程 http viralpatel net blogs itext tutorial merge split pdf files using itext jar 关于如何合并和拆分 PDF 文件很有用 不幸的是 我需要的不仅仅
  • 使 diff-lcs 的输出可读

    我正在使用 diff lcs gem 输出两个 html 内容体之间的差异 这是示例内容 版本一 p Paragraph one Sentence one p p Paragraph two Another sentence p p Par
  • JavaFX 2.0 - 为 FXML 中的自定义组件创建操作处理程序

    我想在我的新组件中添加自定义操作 这个怎么做 示例代码 成分 public class MyCustomComponent extends Region public MyCustomComponent super this setOnMo
  • file_get_content 不适用于 PHP 中的 https

    有人在通过 https 的网站显示内容时遇到过问题吗 该代码一直有效 直到服务器上的所有站点都获得了 ssl 证书是 tlss 1 2 可能有什么关系 所以我尝试执行此操作的网站现在拥有此证书 data file get contents
  • 熊猫计算唯一行

    我有一个类似于以下内容的 pandas 数据框 ColA ColB 1 1 1 1 1 1 1 2 1 2 2 1 3 2 我想要一个具有相同功能的输出Counter https docs python org 2 library coll
  • 在sbt的build.sbt文件中添加模块依赖信息

    我在 IntelliJ 中有一个多模块项目 如该屏幕截图所示 contexProcessor 模块依赖于 contextSummary 模块 一旦我在项目结构中设置了依赖项 IntelliJ 就会处理所有事情 然而 当我跑步时sbt tes
  • Node.js - 如何在 Node.js 应用程序中获取我的外部 IP 地址?

    我正在使用 node js 我需要获取由 ISP 提供的外部 IP 地址 有没有办法在不使用类似服务的情况下实现这一目标http myexternalip com raw http myexternalip com raw Thanks 可