首页 > 解决方案 > 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);

标签: javanetworkingip

解决方案


192.168.10.100意味着您的客户端位于 NAT 后面。有一种叫做UPnP的东西可以帮助你(我不是专家,也不是很确定)。

另一种方法是连接到服务器并询问您的 IP 是什么。它也有限制,相同 NAT 后面的客户端将具有相同的 IP。

一般来说,基于 IP 地址构建安全性是个坏主意。


推荐阅读