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:
int ip2long ( string $ip_address ) 参数: ip_address 一个标准格式的地址。 返回值: 返回IP地址转换后的数字 或 FALSE 如果 ip_address 是无效的
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!