java - IPAddress 在 LAN 网络和 ZONG 4G 上返回不同
问题描述
IPAddress 在 LAN net 和 ZONG 4G 上返回不同。
我想知道 java 应用程序中客户端的 IP 地址,以便我可以限制用户登录和其他角色。但问题是,当我在 LAN 网络上运行以下代码时,它会返回正确的 IPV4 地址,但如果我连接 Zong 4G 设备,它只会在任何计算机上返回192.168.10.100 。
如何获取客户端的IP地址?
我的代码:
InetAddress address = InetAddress.getLocalHost();
String ip = address.getHostAddress();
String host = address.getHostName();
System.out.println("IP Address = " + ip);
System.out.println("host= " + host);
解决方案
192.168.10.100
意味着您的客户端位于 NAT 后面。有一种叫做UPnP的东西可以帮助你(我不是专家,也不是很确定)。
另一种方法是连接到服务器并询问您的 IP 是什么。它也有限制,相同 NAT 后面的客户端将具有相同的 IP。
一般来说,基于 IP 地址构建安全性是个坏主意。