【问题标题】:IPAddress are returning different on LAN net and ZONG 4GIPAddress 在 LAN 网络和 ZONG 4G 上返回不同
【发布时间】:2019-05-27 20:16:39
【问题描述】:

IPAddress 在 LAN 网络和 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);

【问题讨论】:

  • @Eliwa 不,它不是重复的,完全不同的问题。
  • 您是否尝试过使用公共 api,例如:bot.whatismyipaddress.com
  • @Eliwa 没有得到请描述
  • 无论是您的 ISP 还是 Zong 4G 都可以使用 NAT -- 在您的机器上使用 private network ip 真的很常见。

标签: java networking ip


【解决方案1】:

192.168.10.100 表示您的客户端位于 NAT 后面。有一个名为 UPnP 的东西可能会对您有所帮助(我不是专家,也不确定)。

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

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

【讨论】:

  • 不知道该怎么办
  • 重新考虑基于客户端 IP 地址的安全性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-12
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多