我的PC上的localhost上运行着一个node js服务器.我正在将此服务器连接到一个移动应用程序,该应用程序具有一些IP(192.168.0.120:8044),用于API请求.我通过移动应用程序在我的桌面Electron 应用程序中扫描二维码来共享这个IP地址.所以我第一次能够通过QR获得服务器的IP.

但当我的桌面再次启动时.私有IP可能会变为192.168.0.121

在诺德有什么办法吗.js将这个私有IP设为静态,这样我的移动设备就可以随时知道在哪里发送所有API请求?.比如在本地创建一个不expose 于互联网的自定义子域?

我知道我可以go 电脑的设置,使Ip静态.但在生产中,要求用户这样做可能是一个大问题.

推荐答案

虽然可以通过编程进入计算机的配置,使IP成为静态的,但最好是构造应用程序,不需要这样的东西.

由于客户端最初使用二维码连接到服务器,因此您可以让服务器将其硬件MAC地址嵌入代码中,而不是(或附加)服务器的IP.在客户端上,将MAC地址保存在应用程序的永久存储器中.

然后,要从客户端连接到服务器,搜索LAN的ARP table,以确定哪些(如果有的话)IP地址具有该MAC地址.如果是这样,您已经找到了它——如果不是这样,则服务器处于脱机状态.

Node.js相关问答推荐

对接Nestjs/VueJS应用程序

运行JEST测试时找不到模块&q;错误

具有项目外部子路径导入的 Firebase 函数

npm 在 Windows 终端中不工作

Node.js 上的 CLI 应用程序如何通过 child_process 将选项值作为参数传递给 Shell 命令

如何在没有 Typescript 的情况下以交互方式使用 Create-React-App?

如何在没有云功能的情况下使用 Google PubSub

Express.js - 监听请求中止

Zod 模式中的self 数组

BrowserRouter工作时为什么HashRouter不工作?

Mongodb聚合传递一个匹配的数组和一个不匹配的数组

NodeJS 后端发布请求将数据作为NULL值发布到 SQL Server 表

gyp WARN EACCES 用户root没有访问开发目录的权限

Fluxible 中的脱水和再水合代表什么?

Express.js中的bodyParser.urlencoded({extended: true }))和bodyParser.json()是什么意思?

npm install - javascript堆内存不足

`return function *(){...}` 是什么意思?

为什么 Node.js 被命名为 Node.js?

在 Node.js 中混合使用 JavaScript 和 TypeScript

我无法全局安装 nodemon,nodemon无法识别