PHPのIPアドレスとinteger_PHP間の変換の詳細説明チュートリアル
昨日、ユーザーの IP のソースを特定し、ユーザーの IP が存在するネットワーク セグメントのアドレスを入力する必要がありました。最初に実装する必要があるのは、IP アドレスを整数に変換することです。システム関数 ip2long と long2ip を見てみましょう
PHP には、IP アドレスを整数に変換できる組み込み関数 ip2long があります。
コードをコピー | |
$ip = '210.110.11.49'; echo ip2long($ip); 出力: -764540111
|
。
3530427185long2ip を使用して整数を IP アドレスに変換します
コードをコピー | |
$ip = '210.110.11.49'; $ip_int = ip2long($ip); echo $ip." "; echo $ip_int." "; エコーlong2ip($ip_int);
出力:
-764540111 |
システム機能の小さなバグ
このバグはインターネット全体で見つかります。これは基本的に、IP アドレスの特定のセグメントに先頭に 0 を追加することを意味します。まず、このバグの例を見てみましょう。
コードをコピー | |
$ip = '210.110.011.49';
echo $ip." echo $ip_int." エコーlong2ip($ip_int); 出力:
210.110.9.49 |
コードをコピー | |
$ip = '021.110.11.49';
echo $ip." echo $ip_int." エコーlong2ip($ip_int); 出力:
17.110.11.49 |
変換原理
現在 2 つのアルゴリズムがあります:
最初と最初の段落に 256 の 3 乗を掛け、2 番目の段落に 256 の 2 乗を掛け、3 番目の段落に 256 を掛けて、最終的な合計を求めます
コードをコピー | |||||||||||||
関数 ipToInt($ip){
$num = 0; for($i=0;$i $num += intval($iparr[$i]) * pow(256,count($iparr)-($i+1)); } $num を返します; }
echo $ip_int.' エコーlong2ip($ip_int); 出力: 0210.110.11.49
210.110.11.49 |
コードは次のとおりです | コードをコピー |
$iparr = 爆発('.',$ip); return (intval($iparr[0]<<24))|(intval($iparr[1])<<16)|(intval($iparr[2])<<8)| (intval($iparr[3])); }
$ip_int = ipToInt($ip); echo $ip_int.' エコーlong2ip($ip_int);
0210.110.11.49 |
IPが合法かどうかを確認してください
まず自分で横断して検出してください
コードは次のとおりです | コードをコピー |
$iparr = 爆発('.',$ip); foreach($iparr as $v){ if($v>255) return false } true を返す; }
エコー '210.285.11.49,'; var_dump(check_ip('210.285.11.49')); エコー ' エコー '210.205.11.49,'; var_dump(check_ip('210.205.11.49'));
210.285.11.49,bool(false) |
2番目に、ip2longを使用して戻ります
コードは次のとおりです | コードをコピー |
if(ip2long($ip)) true を返す; false を返す; }
var_dump(check_ip('210.285.11.49')); エコー ' エコー '210.205.11.49,'; var_dump(check_ip('210.205.11.49'));
210.285.11.49,bool(false) |

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

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

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