检测IP是本地IP还是公共IP

时间:2014-03-18 12:20:18

标签: java ip local lan

我有一个Java服务器,我需要在获得连接时检查IP是本地的还是公共的。 我可以在我自己的本地IP时检测到它,但是我在使用其他本地IP时遇到了麻烦。 Java是否为我们提供了一种方法?我还没有找到它,所以我们可能应该将IP转换为数字并检查是否在本地IP范围内。我怎样才能得到这个范围?

3 个答案:

答案 0 :(得分:2)

私有IP范围是:

10.0.0.0/8 (from 10.0.0.0 to 10.255.255.255) [ Named as Class A Private Network ]

172.16.0.0/12 (from 172.16.0.0 to 172.31.255.255) [ Named as Class B Private Network ]

192.168.0.0/16 (from 192.168.0.0 to 192.168.255.255) [ Named as Class C Private Network ]

答案 1 :(得分:0)

您需要详细说明您的问题。根据我的理解,您要检查IP是否位于192.x.x.x内或范围之外。如果是这种情况,只需一个字符串或整数比较就可以解决你的问题。

答案 2 :(得分:0)

三个范围之一内的IP地址仅在本地网络中使用(在路由器和防火墙后面),并被视为私有IP地址范围。

  • 10.0.0.0 - 10.255.255.255
  • 172.16.0.0 - 172.31.255.255
  • 192.168.0.0 - 192.168.255.255

我不认为Java会提供这样一种方式来判断IP地址是私有的还是公共的。我认为你必须自己编写函数。