自動的に認証するために、指定されたIPアドレスが特別なネットワークからのものであるかどうかを判断する必要があります。
40024 次
7 に答える
36
Apache Commons Netにはorg.apache.commons.net.util.SubnetUtils
、ニーズを満たしているように見えるものがあります。次のようなことをしているようです:
SubnetInfo subnet = (new SubnetUtils("10.10.10.0", "255.255.255.128")).getInfo();
boolean test = subnet.isInRange("10.10.10.10");
carson が指摘しているように、Apache Commons Net にはバグがあり、場合によっては正しい答えが得られないことに注意してください。Carson は、このバグを回避するために SVN バージョンを使用することを提案しています。
于 2009-02-23T17:34:50.120 に答える
17
あなたも試すことができます
boolean inSubnet = (ip & netmask) == (subnet & netmask);
またはそれより短い
boolean inSubnet = (ip ^ subnet) & netmask == 0;
于 2009-02-23T20:53:57.023 に答える