この記事は、PHP における負の ip2long 数値の問題の解決策を紹介します。一定の参考値が含まれています。困っている友人は参照してください。お役に立てれば幸いです。
PHP が IP アドレスを処理するための ip2long メソッドと long2ip メソッドを提供していることは誰もが知っているかもしれません。いくつかの概念について説明します。
int ip2long ( string $ip_address ) 参数: ip_address 一个标准格式的地址。 返回值: 返回IP地址转换后的数字 或 FALSE 如果 ip_address 是无效的
string long2ip ( string $ip_address ) 参数:ip_address 长整型的正确地址表示。 返回值: 返回互联网地址作为字符串。
例:
$ip = '10.0.0.1'; $ip_long = ip2long($ip); echo $ip_long.PHP_EOL; // 167772161 echo long2ip($ip_long); // 10.0.0.1
IP アドレスが比較的大きい場合、ip2long は負の値で表示されます:
$ip = '192.168.100.1'; $ip_long = ip2long($ip); echo $ip_long.PHP_EOL; // -1062706175 echo long2ip($ip_long); // 192.168.100.1
理由:
IPv4 は符号なし 32 ビット アドレスを使用します。したがって、アドレスは最大でも 2 の 32 乗マイナス 1 (4294967295) です。 10 進数は小数点以下 4 桁で区切って記述します。
A.B.C.D と覚えてください (例: 192.168.100.100)。
IPv4 アドレスの各 10 進数は、0 ~ 255 の範囲の符号なしバイトです。IPv4 アドレスを符号なしの数値に変換します。
もうナンセンスではありません。解決されました。方法:
を使用します。 %u を使用すると、出力時に符号なし整数としてフォーマットされます。
以上がPHPにおけるip2longの負の数の問題の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。