약 20000 개의 IP 주소가 있습니다. 이 IP 주소에 대한 네트워크 블록 범위를 찾으려고합니다. 방화벽의 구멍을 막을 수있는 정보를 제공하여 이러한 주소를 허용 할 수 있습니다. 나는 a.b.c.d/x 비트 형식을 볼 수 있습니다. 여러 범위가있을 수 있습니다.IP 주소 목록에서 IP 주소 범위를 찾는 방법
업데이트 : 새 IP 주소를 만들지 않고 이미 아파치 로그 파일에 IP 주소가 있습니다.
약 20000 개의 IP 주소가 있습니다. 이 IP 주소에 대한 네트워크 블록 범위를 찾으려고합니다. 방화벽의 구멍을 막을 수있는 정보를 제공하여 이러한 주소를 허용 할 수 있습니다. 나는 a.b.c.d/x 비트 형식을 볼 수 있습니다. 여러 범위가있을 수 있습니다.IP 주소 목록에서 IP 주소 범위를 찾는 방법
업데이트 : 새 IP 주소를 만들지 않고 이미 아파치 로그 파일에 IP 주소가 있습니다.
주소로 확인할 수 없습니다. 서브넷 마스크를 알아야합니다.
나는 당신이 CIDR에 대해 이야기하고 있다고 생각합니다. 20000 < 2^15. 따라서 무료 A.B.C.D/15 블록이 필요하지만 AFAIK/15 블록은 일반적이지 않으며/16은 허용됩니다. 그래서 A.B.C.D/16이 필요합니다.
프로그래밍 방식으로 찾고 싶습니까? 대답이 '예'라면 Java 용 솔루션을 제공 할 것입니다. 당신이 진짜 IP에 originalIP 변수를 변경하지 않는 한
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 주소는 블록에 속하지 않습니다. 당신이하려는 일의 모범을 보여줄 수 있습니까? – skaffman
업데이트보기 : 기존 IP 주소의 범위를 파악하려고합니다. – aartist
예, IP 주소에서 네트워크 블록을 확인할 수 없다는 사실은 변함이 없습니다. – skaffman