Ich versuche, einen Benutzer zu finden, der einmal in meinem System registriert ist. Ich habe seinen richtigen Namen und ich weiß, dass er aus Norwegen kommt. Da sein richtiger Name nirgendwo im System gespeichert ist, ist der einzige Weg, ihn ausfindig zu machen, dass er aus Norwegen kommt.Erhalten Sie alle IPs aus Textdatei, die in einer Datei sind, die alle Subnetze enthält
Aus Logs in den letzten Monaten habe ich eine Liste von 2000 IP-Adressen extrahiert, die sicherlich seine IP enthält. Diese Datei heißt ips.txt und hat eine IP pro Zeile. Die IP's kommen von überall auf der Welt, hauptsächlich aus dem Balkan, Südamerika und dem Mittleren Osten (ja, das ist eine ziemlich vielfältige Benutzerbasis).
In dieser Datei befinden sich 2000 IP-Adressen: eine pro Zeile. Die meisten von ihnen (60% oder so) kommen aus Ägypten und Tunesien, da die Nutzer aus diesen Ländern keine dedizierten IP-Adressen haben.
Von http://www.ipdeny.com/ipblocks/ Ich habe eine Liste mit allen Subnetzen aus Norwegen genommen.
Meine Frage http://www.ipdeny.com/ipblocks/data/aggregated/no-aggregated.zone (falls diese Liste vollständig ist nicht sicher): Insbesondere Wie kann ich alle IPs von ips.txt auswählen, die in einem der Teilnetze aus der Zonendatei sind?
Bemerkungen:
- Ich bin mir bewusst, dies wahrscheinlich
#IPs * #subnets
(quadratisch) Zeit in Anspruch nehmen wird. Ich interessiere mich nicht wirklich für die Effizienz, so lange das Skript in etwa einer Stunde fertig ist. - Ich habe das Tag Regex hinzugefügt, aber ich habe keine Ahnung, wie die IP-Subnetze mit Regex analysiert werden.
- Alles ist IPv4
Es wird sicherlich ** kann eine Kombination von RegEx und etwas anderes sein. JavaScript würde wahrscheinlich auch funktionieren. Möchten Sie eine bestimmte Sprache verwenden? – Erutan409
Ich benutze derzeit einen sehr hässlichen Weg: IP -> 32 Bit int; dann teste es "(IP >> Subnetzlänge) & (Subnetz >> Subnetzlänge) == 0". Es muss einen klügeren Weg geben, aber vielleicht werde ich es fertigstellen, bevor jemand anderes eine kluge Lösung findet. Wenn dies der Fall ist, werde ich meine eigene Antwort in den Kommentaren setzen! – Jasper