Heim >Backend-Entwicklung >PHP-Tutorial >Lösung für das Problem ip2long negativer Zahlen in PHP

Lösung für das Problem ip2long negativer Zahlen in PHP

不言
不言nach vorne
2019-01-12 10:58:193711Durchsuche

Was dieser Artikel Ihnen bringt, ist die Lösung des Problems der negativen IP2long-Nummern in PHP. Ich hoffe, dass er Ihnen als Referenz dienen wird.

Jeder weiß vielleicht, dass PHP die Methoden ip2long und long2ip zur Verarbeitung von IP-Adressen bereitstellt. Beginnen wir mit einigen Konzepten:

1.ip2long – Konvertieren eines IPV4-String-Internetprotokolls in ein digitales Format
int ip2long ( string $ip_address )
参数: ip_address 一个标准格式的地址。
返回值: 返回IP地址转换后的数字 或 FALSE 如果 ip_address 是无效的
2.long2ip – Konvertieren eines digitalen Formats in ein IPV4-Zeichenketten-Internetprotokoll
string long2ip ( string $ip_address )
参数:ip_address 长整型的正确地址表示。
返回值: 返回互联网地址作为字符串。

Beispiel:

$ip = '10.0.0.1';
$ip_long = ip2long($ip);
echo $ip_long.PHP_EOL;  // 167772161
echo long2ip($ip_long); // 10.0.0.1

Wenn die IP-Adresse relativ groß ist, hat ip2long eine negative Zahl:

$ip = '192.168.100.1';
$ip_long = ip2long($ip);
echo $ip_long.PHP_EOL;  // -1062706175
echo long2ip($ip_long); // 192.168.100.1

Grund:

IPv4 verwendet vorzeichenloses 32-Bit Adresse, es gibt also höchstens 2 hoch 32 minus 1 (4294967295) Adressen. Schreiben Sie Dezimalzahlen, getrennt durch 4 Dezimalstellen.
Notieren Sie es als A.B.C.D, zum Beispiel: 192.168.100.100.

Jede Dezimalzahl in der IPv4-Adresse ist ein vorzeichenloses Byte im Bereich von 0 bis 255. Konvertieren Sie die IPv4-Adresse in eine vorzeichenlose Zahl.

Kein Unsinn mehr, gelöste Methode:
Verwenden %u, um die Ausgabe in eine vorzeichenlose Ganzzahl zu formatieren.

$ip = '192.168.100.1';
$ip_long = sprintf('%u',ip2long($ip));
echo $ip_long.PHP_EOL;  // 3232261121
echo long2ip($ip_long); // 192.168.100.1

Das obige ist der detaillierte Inhalt vonLösung für das Problem ip2long negativer Zahlen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen

In Verbindung stehende Artikel

Mehr sehen