2013-07-25 45 views
4

我在Python中找到(lib ipaddress)。這是python的例子。如何檢測IP是否在網絡中?

ip="1.232.12.3" 
net="1.232.12.0/20" 
ip in net 

結果true

我能找到這個在Java中?

+0

儘量考慮看看[InetAddress類#isReachable(http://docs.oracle.com/javase/7/docs/api/java/ net/InetAddress.html#isReachable%28int%29) – MadProgrammer

+0

你應該寫這個答案,所以這個問題被標記爲來自外部的回答:) –

+0

'isReachable()'不會告訴IP地址是否在相同的網絡,它只對某個可能的遠程節點進行某種ping操作。 –

回答

5

你問的是IP是否在給定cidr範圍。您可以編寫自己的代碼來計算cidr的開始和結束,並查看IP是否落在該範圍內,或者只使用Apache Commons Net庫。

SubnetUtils類不正是你想要什麼:

String cidrRange = "1.232.12.0/20"; 
String addr = "1.232.12.3"; 
SubnetUtils utils = new SubnetUtils(cidrRange); 
boolean isInRange = utils.getInfo().isInRange(addr); 
相關問題