私は約20000のIPアドレスを持っています。これらのIPアドレスのネットワークブロック範囲を見つけることを検討しています。その目的は、ファイアウォールに穴を開けるための情報を提供して、これらのアドレスを許可できるようにすることです。私はa.b.c.d/xビット形式で見ることができます。いくつかの範囲があります。IPアドレスのリストからIPアドレス範囲を見つける方法
アップデート:新しいものを作成するのではなく、すでにApacheのログファイルにIPアドレスがあります。
私は約20000のIPアドレスを持っています。これらのIPアドレスのネットワークブロック範囲を見つけることを検討しています。その目的は、ファイアウォールに穴を開けるための情報を提供して、これらのアドレスを許可できるようにすることです。私はa.b.c.d/xビット形式で見ることができます。いくつかの範囲があります。IPアドレスのリストからIPアドレス範囲を見つける方法
アップデート:新しいものを作成するのではなく、すでにApacheのログファイルにIPアドレスがあります。
これはアドレスからは判別できません。サブネットマスクを知る必要があります。
あなたはCIDRについて話していると思います。 20000 < 2^15。したがって、無料のA.B.C.D/15ブロックが必要ですが、AFAIK/15ブロックは一般的ではなく、/ 16は受け入れられます。だからあなたはA.B.C.D/16が必要です。
プログラム的に検索しますか?あなたの答えが「はい」の場合、私はそれをJavaで解決します。
public static void main(String[] args) {
String originalIP = "a.b.c.d/x";
String[] ipParts = originalIP.split("[\\.\\/]");
boolean ipWithinBounds = true;
for (int i = 0; i < ipParts.length; i++) {
ipWithinBounds &= withinBounds(Integer.parseInt(ipParts[0]),
lowerBound, upperBound);
}
}
public static boolean withinBounds(int check, int lowerBound, int upperBound) {
if(check >= lowerBound && check <= upperBound)
{
return true;
}
else
{
return false;
}
}
あなたは本当のIPにoriginalIP変数を変更しない限り、これは動作しません。
IPアドレスはブロックに属しません。あなたがしようとしていることの例を挙げることができますか? – skaffman
アップデートを見る:私は既存のIPアドレスの範囲を把握しようとしています。 – aartist
はい、わかりましたが、IPアドレスからネットワークブロックを特定できないという事実は変わりません。 – skaffman