Hier ist das Szenario... Ich habe eine Tabelle von Subnetzen. (siehe unten) Ich habe eine IP-Adresse. Ich möchte herausfinden, zu welchem Subnetz die IP-Adresse gehört, basierend auf einer Suche in der Tabelle. Diese Zuordnung wird dann verwendet, um zu bestimmen, an welchem Standort sich der Benutzer befindet. Es handelt sich um einen privaten Netzwerkbereich, sodass die Standard-Internet-zu-Ort-Suchen nicht zutreffen würden. Was wäre der beste Ansatz? Müsste ich die IP-Adresse in ihre numerischen Teile aufteilen und einen Bitweisen Vergleich gegen alle Subnetze durchführen.. oder gibt es eingebaute Werkzeuge in der Java API, die mir das Leben erleichtern könnten, um eine IP-Adresse mit einer Subnetzmaske zu vergleichen?
Ich suche hauptsächlich nach dem besten Weg, eine IP-Adresse mit einer gegebenen Subnetzmaske zu vergleichen und festzustellen, ob diese übereinstimmt oder nicht.. Optional. Jede Hilfe, wie man die Liste speichert und mit minimalen Operationen sucht, wäre ebenfalls willkommen.
Idealerweise würde ich etwas Ähnliches tun:
List subnetInfo = null;
subnetInfo = findSubnet('192.168.0.1'); // Wert null, wenn nichts gefunden
....
// Gib null zurück, wenn nichts gefunden
List findSubnet(String ipaddress) {
List subnetDetails = null;
.... code here ...
return subnetDetails;
}
Tabelle 1: Beispiel Liste von Subnetzen
dk-ballerup-gen-off-v411 10.172.80.0/21 NANR-denmark-ballerup-metallbuen66-ground-first-floors-incl-dhcp-(sr14585203)
ae-dubai-ofssl-gen-off-v410 10.172.88.0/24 NANR-arab-emirates-ofssl-iflex-general-office-v410-(sr12781477)
ru-stpetersburg-gen-off-v411 10.172.89.0/24 NANR-russia-stpetersburg-general-office-incl-dhcp (bsteinba)