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
Hintergrund PNG-Bilder benötigen mehr Speicherpla...
Inhaltsverzeichnis verifizieren: Kombiniert mit d...
Inhaltsverzeichnis Installieren Sie Docker-ce für...
Heutzutage beginnen viele Leute damit, Websites z...
Null: Alte Version deinstallieren Ältere Versione...
Im Linux-System gibt es neben den verschiedenen, ...
Docker-Installation (Alibaba Cloud Server) Offizi...
1. Objekte dynamisch erstellen Es gibt zwei Mögli...
Inhaltsverzeichnis 1. Nachfrage Methode 1 Methode...
Ich schreibe gerade ein kleines Programm. Da die ...
Im Bereich der Datenanalyse sind Datenbanken unse...
Ein Webserver kann mehrere Websites mit unabhängi...
Es gibt zwei Möglichkeiten, nodejs unter Linux zu...
Inhaltsverzeichnis 1. Ergebnisse erzielen 2. Back...
1. Was ist mycat Ein vollständig Open Source-Groß...