ホームページ >バックエンド開発 >PHPチュートリアル >PHP の ip2long にはバグがあります。注意して使用してください_PHP チュートリアル
まず、以下の PHP コードを見てください。このセクションでは、ip2long 関数を使用して同じ IP を変換します。もちろん、58.99.011.1 と 058.99.011.1 は違法だと考える人もいます
IPしてから戻ってください、この記事は役に立ちません。
先頭にゼロを付けた IP を使用する理由: データベース内でクエリを実行するために、IP ライブラリ内の IP に対応する位置情報を見つけることができます。整数 IP クエリほど効率的ではありませんが、結局のところ直感的です。
プレーンコピーをクリップボードプリントに表示しますか?
echo ip2long(58.99.11.1),"
" //出力は 979569409 です
echo ip2long(58.99.011.1),"
" //出力は 979568897 です
echo ip2long(058.99.11.1),"
" //出力は空です
?>
echo ip2long(58.99.11.1),"
" //出力は 979569409 です
echo ip2long(58.99.011.1),"
" //出力は 979568897 です
echo ip2long(058.99.11.1),"
" //出力は空です
?>
PHP 4.x、5.x では、先頭にゼロを付けた IP 変換の結果が正しくありません。
解決策として、独自の関数を作成してください:
プレーンコピーをクリップボードプリントに表示しますか?
関数 myip2long($ip){
$ip_arr = スプリット(.,$ip);
$iplong = (16777216 * intval($ip_arr[0])) + (65536 * intval($ip_arr[1])) + (256 * intval($ip_arr[2])) + intval($ip_arr[3]) ;
$iplong を返します。
}
http://www.bkjia.com/PHPjc/486473.html