ホームページ  >  記事  >  バックエンド開発  >  PHP の ip2long にはバグがあります。注意して使用してください_PHP チュートリアル

PHP の ip2long にはバグがあります。注意して使用してください_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:38:311220ブラウズ

まず、以下の 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

tru​​ehttp://www.bkjia.com/PHPjc/486473.html技術記事まずは以下のPHPコードを見てください。このセクションでは、ip2long 関数を使用して同じ IP を変換します。もちろん、58.99.011.1 と 058.99.011.1 は合法的な IP ではないと考える人もいます。だから、戻って、これ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。