如何通过网络信息识别客户?

如何通过网络信息识别客户?

我正在将 Linux 设备部署到多个客户。设备执行连接到我的服务器的应用程序。我需要唯一地标识客户并在服务器端映射到其 ID。我无法为每个客户单独更改设备软件,也不想检查其 MAC 地址以简化批量部署。但我可以更改应用程序(和服务器)。这个问题有什么好的解决方案吗?

我考虑在服务器端将设备 IP 地址解析为主机名。在设备首次连接到服务器之前,应使用此客户主机名配置服务器。我担心主机名,因为客户可能有几个主机名,并且可能为服务器配置提供无效的主机名。我还担心 DNS 更新可能需要一些时间。我是否有可能无法将最近分配的新公共 IP 地址解析为正确的主机名?

编辑:

该设备是一台现成的 Linux 计算机。部署前,我们将其拆开,并将其 SD 卡换成准备好的包含 Linux 映像的 SD 卡,其中包含我们的应用程序。无需打开电源。该设备无法轻松连接到监视器,只能通过网络访问。

答案1

我想不出通过常规网络发现方式实现此目的的万无一失的方法如果您不愿意定制设备,也不愿意记录 MAC 地址或其他唯一标识符等信息,并将其与您在服务器上存档的客户端记录配对。

想想 ISP 如何跟踪他们的客户端设备 (CPE),例如电缆调制解调器:几乎总是有一个序列号,当然还有 MAC 地址,并且与客户 ID 一起存储在他们的 CRM 或库存管理应用程序中。

您可以尝试使用您的盒子进行 NAT/传出的公共 IP 的反向 DNS,但这并不总是会告诉您需要将其与客户端匹配什么。

既然您使用的是 SSL,为什么不使用客户端证书(或 SSH 密钥对并通过 SSH 隧道传输您的自定义协议)呢?这将是一个独特的、易于编写脚本的解决方案,具有大量开放库和社区支持,可以(正如它应该的那样)保证服务器和客户端的真实性。

相关内容