Dieser Artikel stellt vor, wie Sie IP-Adressdaten in einem geeigneten Format in einer Datenbank speichern und IP-Adressen einfach vergleichen. 1. Speichern Sie die IP-Adresse in der Datenbank Die IP-Adresse wird in der Datenbank gespeichert und das Feld wird im Allgemeinen wie folgt definiert: `ip` char(15) NICHT NULL, Da die maximale Länge einer IP-Adresse (255.255.255.255) 15 beträgt, ist ein 15-Bit-Zeichen ausreichend. Tabellenbenutzer erstellen CREATE TABLE `Benutzer` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(30) NICHT NULL, `ip` char(15) NICHT NULL, PRIMÄRSCHLÜSSEL (`id`) )ENGINE=InnoDB; Fügen Sie einige Daten ein INSERT INTO `Benutzer` (`id`, `name`, `ip`) WERTE (2, 'Abby', '192.168.1.1'), (3, 'Daisy', '172.16.11.66'), (4, 'Christine', '220.117.131.12'); 2. MySQL inet_aton- und inet_ntoa-Methoden MySQL bietet zwei Methoden zum Umgang mit IP-Adressen inet_aton konvertiert IP in vorzeichenlose Ganzzahlen (4-8 Bit) inet_ntoa konvertiert die ganzzahlige IP-Adresse in eine Adresse Bevor Sie die Daten einfügen, wandeln Sie die IP-Adresse mit inet_aton in eine Ganzzahl um, um Platz zu sparen, da char(15) 16 Bytes belegt. Verwenden Sie beim Anzeigen von Daten inet_ntoa , um die ganzzahlige IP-Adresse in eine Adresse zur Anzeige umzuwandeln. Beispiel: CREATE TABLE `Benutzer` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(100) NICHT NULL, `ip` int(10) unsigned NICHT NULL, PRIMÄRSCHLÜSSEL (`id`) )ENGINE=InnoDB; Fügen Sie einige Daten ein INSERT INTO `Benutzer` (`id`, `name`, `ip`) WERTE (2, 'Abby', inet_aton('192.168.1.1')), (3, 'Daisy', inet_aton('172.16.11.66')), (4, 'Christine', inet_aton('220.117.131.12')); mysql> wähle * von „Benutzer“; +----+-----------+------------+ | ID | Name | IP | +----+-----------+------------+ | 2 | Abby | 3232235777 | | 3 | Gänseblümchen | 2886732610 | | 4 | Christine | 3698688780 | +----+-----------+------------+ Die Abfrage wird als elektrische Adresse angezeigt mysql> wähle ID, Name, inet_ntoa(IP) als IP von „Benutzer“; +----+-----------+----------------+ | ID | Name | IP | +----+-----------+----------------+ | 2 | Abby | 192.168.1.1 | | 3 | Gänseblümchen | 172.16.11.66 | | 4 | Christine | 220.117.131.12 | +----+-----------+----------------+ 3. Vergleichsmethode Wenn Sie Benutzer in einem bestimmten Netzwerksegment suchen müssen (z. B. 172.16.11.1 ~ 172.16.11.100), können Sie die IP-Adresse mit der ip2long-Methode von PHP in eine Ganzzahl umwandeln und dann vergleichen. <?php $ip_start = "172.16.11.1"; $ip_end = "172.16.11.100"; echo 'ip2long(ip_start):'.sprintf('%u',ip2long($ip_start)); // 2886732545 echo 'ip2long(ip_end):'.sprintf('%u',ip2long($ip_end)); // 2886732644 ?> Abfrage: mysql> wähle ip,name,inet_ntoa(ip) als IP von „Benutzer“, wobei ip>=2886732545 und ip<=2886732644; +------------+-------+---------------+ | IP-Adresse | Name | IP-Adresse | +------------+-------+---------------+ | 2886732610 | Gänseblümchen | 172.16.11.66 | +------------+-------+---------------+ Hinweis: Wenn Sie die IP-Adresse mit der Methode ip2long in eine Ganzzahl umwandeln, kann bei einer großen IP eine negative Zahl erscheinen. Informationen zu Ursache und Lösung finden Sie in meinem anderen Artikel: „ Detaillierte Erörterung der Ursache und Lösung negativer Zahlen in php ip2long “ 4. Zusammenfassung 1. Speichern Sie die IP-Adresse im vorzeichenlosen int-Format in der Datenbank. Verwenden Sie beim Einfügen die Methode inet_aton, um die IP-Adresse in eine vorzeichenlose Ganzzahl umzuwandeln und so Speicherplatz zu sparen. 2. Verwenden Sie inet_ntoa, um die ganzzahlige IP-Adresse bei der Anzeige in eine Adresse umzuwandeln. 3. Wenn php ip2long IP in eine Ganzzahl umwandelt, müssen Sie auf negative Zahlen achten. Das obige Beispiel von MySQL, das inet_aton und inet_ntoa zur Verarbeitung von IP-Adressdaten verwendet, ist der gesamte Inhalt, den der Editor mit Ihnen teilt. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Das könnte Sie auch interessieren:
|
>>: Einführung in die Linux-Dateikomprimierung und -Verpackung
Inhaltsverzeichnis Einführung Öffentlicher Code (...
Text 1) Laden Sie das Ubuntu-Image herunter Docke...
Inhaltsverzeichnis 1. Szenario 2. Vereinfachen Si...
1. Effektanzeige Ein in JavaScript geschriebenes ...
Inhaltsverzeichnis Vorwort 1. MySQL Master-Slave-...
1. Benennungskonventionen für CSS-Dateien Vorschl...
Frage Bei der Installation von Docker mithilfe de...
query_cache_limit query_cache_limit gibt die Puff...
Dies ist das Installationstutorial von mysql5.7.1...
Einführung Weil JavaScript standardmäßig ein Thre...
Inhaltsverzeichnis Überblick 1. Bereichsfehler 2....
In diesem Artikel wird die Installations- und Kon...
Dieser Artikel wurde auf GitHub https://github.co...
Der DIV-Schwebeeffekt (feste Position) wird aussc...
Eines der wichtigsten Merkmale eines Stylesheets ...