2016-12-21 20 views
0

IPアドレスからサブネット値を取得するにはどうすればよいですか。 たとえば、Pythonで以下のことができます。 (しかし、どのようにJavaのでしょうか?)JavaのIPからサブネットを取得する方法

interface = ipaddress.IPv4Interface('11.22.104.0/0.0.0.255') 
value = interface.with_prefixlen 

値の出力= 11.22.104.0/24

基本的に、私はに/ 24 0.0.0.255を変換する機能を必要とします。ありがとう。

編集

-Java 7が使用されています。グアバで

答えて

1

:Javaの8で

int slash = Integer.bitCount(
     ~Ints.fromByteArray(
       InetAddresses.forString("0.0.0.255").getAddress())); 

int slash = Arrays.stream("0.0.0.255".split("\\.")) 
     .mapToInt(Integer::parseInt) 
     .map(i -> ~i & 0xFF) 
     .map(Integer::bitCount) 
     .sum(); 

のJava 7の場合:

int slash = 0; 
for (String octet : "0.0.0.255".split("\\.")) { 
    slash += Integer.bitCount(~Integer.parseInt(octet) & 0xFF); 
} 

slashの値が24

+0

いずれかがあるのだろうJavaですぐに使えるライブラリ7? 私のアプリケーションはJava 7を使用しているため、上記のコードは機能しません。申し訳ありませんが、Javaのバージョンについては言及していません。 – user1841495

+0

@ user1841495 Java 7バージョンが追加されました。 – shmosel

+0

Java 7のソリューションをお寄せいただきありがとうございます。私はすぐにこの解決策を試すつもりです。どうもありがとう。 – user1841495

関連する問題