PHPでIPを整数に変換する方法
php で IP を整数に変換するメソッド: 1. PHP サンプル ファイルを作成します; 2. "ip2long($ip);" メソッドを通じて IP アドレスを整数に変換します。
この記事の動作環境: Windows 7 システム、PHP バージョン 7.1、DELL G3 コンピューター
IP を に変換する方法PHPの整数?
#PHP における IP アドレスと整数の相互変換の詳細説明
この記事では主に IP アドレスと整数の相互変換の詳細な説明を紹介します。 PHP の整数。この記事では、PHP 関数 ip2long と long2ip の使用法とそのバグの紹介を紹介し、最後に私が書いた 2 つのアルゴリズムを紹介します。必要な友人は参照してください。IP を次のように変換する整数ストレージはデータベースの最適化方法です 一般的な傾向として、IP を格納するときに、多くの人が依然として文字列型ストレージを使用しています。文字列インデックスは、特にテーブル内のデータ量が多い場合や、整数インデックスよりも多くのリソースを消費します。今日、特定の IP セグメントのデータをクエリします。ここで言及されている ip は ip4 を指します。ip6 はこの記事の範囲内ではありません。システム関数 ip2long および long2ip
PHP には、IP アドレスを整数に変換できる組み込み関数 ip2long があります。
$ip = '210.110.11.49';echo ip2long($ip);
-764540111
3530427185
long2ip を使用して整数型を IP アドレスに変換し直します
$ip = '210.110.11.49';$ip_int = ip2long($ip);echo $ip."<br />";echo $ip_int."<br />";echo long2ip($ip_int);
210.110.011.49 -764540623 210.110.9.49
$ip = '021.110.11.49';$ip_int = ip2long($ip);echo $ip."<br />";echo $ip_int."<br />";echo long2ip($ip_int);
021.110.11.49 292424497 17.110.11.49
変換原理
現在 2 つのアルゴリズムがあります:
まず、最初のセクションは 256 の 3 乗で乗算され、2 番目のセクションは次のようになります。 256 の 2 乗を乗算し、3 番目のセグメントに 256 を乗算し、最終的な合計は
$ip = '0210.110.11.49'; function ipToInt($ip){ $iparr = explode('.',$ip); $num = 0; for($i=0;$i<count($iparr);$i++){ $num += intval($iparr[$i]) * pow(256,count($iparr)-($i+1)); } return $num; } echo $ip.'<br />';$ip_int = ipToInt($ip);echo $ip_int.'<br />';echo long2ip($ip_int);
0210.110.11.49 3530427185 210.110.11.49
2 番目、ビットごとの演算子を使用して
$ip = '0210.110.11.49'; function ipToInt($ip){ $iparr = explode('.',$ip); return (intval($iparr[0]<<24))|(intval($iparr[1])<<16)|(intval($iparr[2])<<8)| (intval($iparr[3])); } echo $ip.'<br />';$ip_int = ipToInt($ip);echo $ip_int.'<br />';echo long2ip($ip_int);
0210.110.11.49 -764540111 210.110.11.49
IP が合法かどうかを確認します
まず、自分でテストを実行します
function check_ip($ip){ $iparr = explode('.',$ip); foreach($iparr as $v){ if($v>255) return false; } return true; } echo '210.285.11.49,';var_dump(check_ip('210.285.11.49'));echo '<br />';echo '210.205.11.49,';var_dump(check_ip('210.205.11.49')); [code] 输出: [code]210.285.11.49,bool(false)210.205.11.49,bool(true)
いいえ。 2. ip2long を使用して
function check_ip($ip){ if(ip2long($ip)) return true; return false; } echo '210.285.11.49,';var_dump(check_ip('210.285.11.49'));echo '<br />';echo '210.205.11.49,';var_dump(check_ip('210.205.11.49'));
210.285.11.49,bool(false)210.205.11.49,bool(true)
追記
多くの人が使用します。 ip2long を使用して IP 書き込みライブラリを変換して int 型フィールドを格納しますが、システム プラットフォームが異なると、ip2long 関数で取得される値が異なるため、long2ip で取得した IP が読み取り時に元の IP と一致しない可能性があります。データベースからデータを取得して IP を反転します。MySQL の場合は、mysql システム関数 INET_ATON および INET_NTOA を使用するか、bigint 型を使用するか、関数を自分で作成することで解決できます。
PHP ビデオ チュートリアル 」
以上がPHPでIPを整数に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
