将 TCP 客户端的主机名发送到 Node JS 中的服务器

Send the Hostname of a TCP client to the Server in Node JS

我有一台主服务器机器 (windows 10),我用它在节点 js 中使用 TCP 控制多个 Raspberry PI。

我想知道将每个 pi 的主机名(pi-001.local、pi002.local、pi003.local 等)发送到服务器的最佳方式是什么.

运行 socket.remoteAddress 在服务器上 returns 客户端的 IP,但我需要主机名

显然每个 pi 都可以使用 os.hostname() 方法解析自己的主机名 但我需要跟踪并知道每个 net.Socket 对象在 服务器端 .

上关联的主机名

有没有比通过 socket.write(os.hostname()) 发送更好的方法?

谢谢!

只要 TCP 服务器使用的 DNS 服务器知道 PI 设备的主机名,您就可以让 TCP 服务器对每个连接进行 socket.remoteAddress 的反向查找。您可以使用 dns.reverse().

在节点中执行此反向查找

这已经在 SMTP 协议中完成了一些工作,这是用于 TCP 协商的良好模型。使用这种方法,当你的 Pi 连接到服务器时,他们要做的第一件事就是写一个

HELO pi00001.local

... 这样,您的服务器总是希望在每次连接或重新连接时预先从 Pi 获得信息。