我正在用 Java 创建一个具有客户端-服务器架构的应用程序。我试图实现的是一个通过 LAN 和以太网交换机连接的简单客户端-服务器架构,服务器正在运行应用程序的服务器模块,并且还具有 MySQL 数据库,客户端进行处理并在服务器数据库上提交结果,数据库也用于身份验证。
服务器将是网络中唯一通过任何 ISP 连接到 WAN 的机器,服务器机器的 IP 地址不能保证处于静态,在这种情况下客户端如何连接服务器数据库? 由于服务器的 IP 地址是不固定的..
还有一个疑问是,我还必须根据客户端的 IP 地址(或者如果易于实现,也可能是物理 MAC 地址)对其进行身份验证,我在数据库中有一个表,服务器管理员可以更新并存储有效客户端的 IP 地址,现在通过 LAN 连接时,分配给要存储在数据库中的计算机的 IP 地址是什么,它们会是静态的吗? 我已经在 Google 上搜索过这个问题,但没有找到相关答案...
答案1
首先,你没有告诉它是Linux,Windows,...服务器吗?
静态 IP 可以用 dynDNS 服务替换,但您需要将端口 3306(默认 MySQL 端口)从路由器转发到 MySQL 服务器 IP 地址,并且 LAN 内部的服务器 IP 地址应始终相同(例如 192.168.1.2)并且位于 DHCP 池外部,因此路由器不能将相同的 IP 分配给其他计算机。
基于 MAC 的身份验证毫无意义,因为 MAC 地址可以更改,并且您无法从网络外部的客户端看到 MAC 地址。用户名/密码身份验证与 mysql 服务器上的 IP 地址限制相结合就足够了。