Entwickler-Ecke

Internet / Netzwerk - IP in einer IP-Range finden


MarioW - Do 06.11.08 16:43
Titel: IP in einer IP-Range finden
Hallo, im Moment programmiere ich ein Tool, was meine Server-Log Datei auswertet. Zum beispiel weise ich IP's den Providern zu, um zu sehen, woher die User kommen. Jetzt gibt es aber ein Problem. Die Telekom z.B. hat eine große IP-Range, nun ist das aber sehr umständlich jede einzelne IP abzufragen. Jetzt suche ich eine Routine, die das für mich abnimmt. Z.B. habe ich eine ip (Ich nehme mal locale IP'S) 192.168.4.3 und möchte wissen, ob sie in der Range 190.120.0.0 ist, in diesem Beispiel wäre sie es. Kann mir einer helfen ?

Grüße Mario


BenBE - Fr 07.11.08 14:07

IPv4 in Long-Format wandeln, die Grenzn vom IP-BEreich auch und dann nen Integer-Vergleich.

Ansonsten bei CIDR-Angaben:
(IP and (0-(1 shl (32-SubnetBits)))) xor RangeBase == 0

Für Die IP 141.55.192.50 mit CIDR 141.55/16 bekommst Du also: Long/IP 2369241138 Long IP, 2369191936, mit 16 Bits.