将 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 获得信息。
我有一台主服务器机器 (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 获得信息。