Heim Backend-Entwicklung PHP-Tutorial Warum hat PHP ip2long negative Zahlen? Wie kann man es lösen?

Warum hat PHP ip2long negative Zahlen? Wie kann man es lösen?

Jul 17, 2020 pm 03:57 PM
php

Warum hat PHP ip2long negative Zahlen? Wie kann man es lösen?

php bietet ip2long- und long2ip-Methoden zur Verarbeitung von IP-Adressen.

1. ip2long – Konvertieren eines IPV4-String-Internetprotokolls in ein digitales Format

int ip2long ( string $ip_address )
Nach dem Login kopieren

Parameter: ip_address Eine Adresse in einem Standardformat.

Rückgabewert: Gibt die konvertierte Nummer der IP-Adresse oder FALSE zurück, wenn ip_address ungültig ist.

2. long2ip – Konvertieren Sie das Zahlenformat in ein IPV4-String-Internetprotokoll

string long2ip ( string $proper_address )
Nach dem Login kopieren

Parameter: proper_address Die korrekte Adresse von Long Integer Express.

Rückgabewert: Gibt die Internetadresse als String zurück.

3. So verwenden Sie

$ip = '10.1.1.1';
$ip_long = ip2long($ip);
echo $ip_long.PHP_EOL; // 167837953
echo long2ip($ip_long); // 10.1.1.1
Nach dem Login kopieren

4. Ursachen und Lösungen für negative Zahlen

Wenn die IP-Adresse relativ ist große, negative Zahlen werden in ip2long angezeigt:

$ip = '192.168.101.100';
$ip_long = ip2long($ip);
echo $ip_long.PHP_EOL; // -1062705820
echo long2ip($ip_long); // 192.168.101.100
Nach dem Login kopieren

Grunderklärung:

IPv4 verwendet vorzeichenlose 32-Bit-Adressen, daher gibt es höchstens 2 hoch 32 minus 1 (4294967295) Adressen. Schreiben Sie Dezimalzahlen, getrennt durch 4 Dezimalstellen.

wird als A.B.C.D aufgezeichnet, zum Beispiel: 192.168.100.100.

Jede Dezimalzahl in der IPv4-Adresse ist ein vorzeichenloses Byte im Bereich von 0 bis 255. Die Konvertierung der IPv4-Adresse in eine vorzeichenlose Zahl bedeutet eigentlich, jede Dezimalzahl in den entsprechenden 8 Bits zu platzieren, wodurch ein 4-Byte-Byte ohne Vorzeichen entsteht ganze Zahl. 192.168.100.100, 192.168 in den hohen 8 Ziffern und 100.100 in den niedrigen 8 Ziffern.

Lösung:

Verwenden Sie %u, um bei der Ausgabe vorzeichenlose Ganzzahlen zu formatieren.

$ip = '192.168.101.100';
$ip_long = sprintf('%u',ip2long($ip));
echo $ip_long.PHP_EOL; // 3232261476 
echo long2ip($ip_long); // 192.168.101.100
Nach dem Login kopieren

Empfohlene verwandte Tutorials: „PHP-Tutorial

Das obige ist der detaillierte Inhalt vonWarum hat PHP ip2long negative Zahlen? Wie kann man es lösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

CakePHP Datum und Uhrzeit

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

CakePHP-Projektkonfiguration

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

CakePHP-Datei hochladen

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

CakePHP-Routing

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

Besprechen Sie CakePHP

CakePHP-Kurzanleitung CakePHP-Kurzanleitung Sep 10, 2024 pm 05:27 PM

CakePHP-Kurzanleitung

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein

See all articles