ホームページ バックエンド開発 PHPチュートリアル Web サイトがユーザー IP を取得する安全な方法 HTTP_X_FORWARDED_FOR Inspection_PHP チュートリアル

Web サイトがユーザー IP を取得する安全な方法 HTTP_X_FORWARDED_FOR Inspection_PHP チュートリアル

Jul 21, 2016 pm 03:10 PM
for http web 関数 安全性 方法 テスト ユーザー サイト 得る フィルター

セキュリティフィルターされたgetIP関数

コードをコピーします コードは次のとおりです:

function getIP() {
$realip = ''; //デフォルト値を設定します
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$realip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$realip = $_SERVER['HTTP_CLIENT_IP'];
} else {
$realip = $ _SERVER['REMOTE_ADDR' ];
}

preg_match('/^((?:d{1,3}.){3}d{1,3})/',$realip,$match);
return $match?$match[0]:false ;
}

上記関数はIP判定を追加し、IP形式で始まるデータと、最初にIP形式の値を満たしたデータのみを読み込みます。そうでない場合は false を返します。 このようにして、フォーマットを満たす IP を読み取ることができ、データの IP フォーマットが検証されます。

インターネットの IP、ユーザーの受信 LAN の IP を読み取る場合は、それを直接フィルタリングする必要があります

一部の Web サイトでは、不正な IP アドレスが実際には IP アドレス形式エラーの一部であり、その一部は IP アドレスが読み取られ、インターネットで許可されている IP 形式を満たしていない可能性があるというプロンプトをよく見かけます。 次の関数は、IANA サイト仕様を通じて関数をカプセル化します。 IPアドレスを入力すると、そのIPがインターネット上で利用できるかどうかを正確に知ることができます。

コードをコピーします コードは次のとおりです:

//インターネットではIPアドレスの使用が許可されています
function ipType2($ip) {
$iplist =explode(".", $ip);

if ($iplist[0] >= 224 && $iplist[0] <= 239)
return 'マルチキャスト';
if ($iplist[0] >= 240 && $iplist[0] < = 255)
「保持」を返す;

if (preg_match('/^198.51.100/', $ip))
return 'TEST-NET-2、ドキュメントと例';
if (preg_match('/^203.0.113/', $ip))
'TEST-NET-3、ドキュメントと例' を返します;

if (preg_match('/^192.(18|19)./', $ip))
return 'ネットワーク ベンチマーク テスト';

if (preg_match('/^192.168/', $ip))
return 'プライベート ネットワーク [イントラネット]';

if (preg_match('/^192.88.99/', $ip))
return 'ipv6to4 リレー';
if (preg_match('/^192.0.2./', $ip))
return 'TEST-NET -1、ドキュメントと例';
if (preg_match('/^192.0.0./', $ip))
return '予約済み (IANA)';
if (preg_match('/^192.0.0./ ' 、$ip))
return '予約済み (IANA)';

if ($iplist[0] == 172 && $iplist[1] <= 31 && $iplist[1] >= 16)
return 'プライベート ネットワーク [イントラネット]';

if ($iplist[0] == 169 && $iplist[1] == 254)
return 'リンクローカル';
if ($iplist[0] == 127)
return 'ループバックアドレス';
if ( $iplist[0] == 10)
return 'プライベート ネットワーク [イントラネット]';
if ($iplist[0] == 0)
return 'このネットワーク (送信元アドレスとしてのみ有効)';

「インターネットアドレス」を返します;
}

IP アドレスを入力して「'インターネット アドレス'」が返された場合、この IP アドレスは正しい形式であるだけでなく、インターネット上の合法的な IP アドレスでもあります。この機能は非常に複雑で、実際には多くの非インターネット アドレスが除外されます。 -インターネット IP アドレス 192、127、10 で始まる一般的なアドレスはおそらくよく知られていますが、実際には、上記の 2 つの機能を使用すると、正しい形式を読み取ることができるだけではありません。 . IP アドレスはインターネット上の IP アドレスであることも保証できます。

著者: chengmo QQ:8292669

http://www.bkjia.com/PHPjc/327101.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327101.html技術記事セキュリティ フィルタリングされた getIP 関数のコピー コードは次のとおりです。 function getIP() { $realip = '' //デフォルト値を設定します if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $realip = $_SERVER['HTTP_ ..
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Google Chromeに信頼できるサイトを追加する方法 Google Chromeに信頼できるサイトを追加する方法 Jul 19, 2024 pm 04:14 PM

Google Chrome に信頼できるサイトを追加するにはどうすればよいですか?一部のユーザーは、インターネット サーフィン中に安全ではないというメッセージが表示されるため、正常に Web を閲覧できません。その場合、Web サイトを信頼済みサイトとして追加することができ、正常にアクセスしてインターネットをスムーズに閲覧できます。以下のエディターは、Google Chrome に信頼できるサイトを追加する手順を示します。手順はシンプルで操作が簡単で、初心者でも簡単に始めることができます。 Google Chrome に信頼済みサイトを追加する方法: 1. Google Chrome を開き、右上隅にある 3 つの点をクリックします。 [設定]をクリックします。プライバシー設定とセキュリティを選択します。 (図に示すように) 2. ページの下部にある [Web サイトの設定] をクリックします。 (図に示すように) 3. ページの下部にある安全でないコンテンツをクリックします。 (図に示すように) 4. 「許可」オプションの右側にある「追加」ボタンをクリックします。 (写真の通り) 5.負ける

モバイルドラゴンの卵を孵化させる秘密が明らかに(モバイルドラゴンの卵をうまく孵化させる方法を段階的に教えます) モバイルドラゴンの卵を孵化させる秘密が明らかに(モバイルドラゴンの卵をうまく孵化させる方法を段階的に教えます) May 04, 2024 pm 06:01 PM

テクノロジーの発展に伴い、モバイルゲームは人々の生活に欠かせないものになりました。かわいいドラゴンエッグの画像と面白い孵化過程で多くのプレイヤーの注目を集めており、その中でも注目を集めているゲームの一つがモバイル版ドラゴンエッグです。プレイヤーがゲーム内で自分のドラゴンをより適切に育成し成長させることができるように、この記事ではモバイル版でドラゴンの卵を孵化させる方法を紹介します。 1. 適切な種類のドラゴン エッグを選択する プレイヤーは、ゲーム内で提供されるさまざまな種類のドラゴン エッグの属性と能力に基づいて、自分に適したドラゴン エッグの種類を慎重に選択する必要があります。 2. 孵化機のレベルをアップグレードします。プレイヤーはタスクを完了し、小道具を収集することで孵化機のレベルを向上させる必要があります。孵化機のレベルは孵化速度と孵化成功率を決定します。 3. プレイヤーはゲームに参加する必要がある孵化に必要なリソースを収集します。

携帯電話の文字サイズの設定方法(携帯電話の文字サイズを簡単に調整できます) 携帯電話の文字サイズの設定方法(携帯電話の文字サイズを簡単に調整できます) May 07, 2024 pm 03:34 PM

携帯電話が人々の日常生活において重要なツールになるにつれて、フォント サイズの設定は重要なパーソナライゼーション要件になりました。さまざまなユーザーのニーズを満たすために、この記事では、簡単な操作で携帯電話の使用体験を向上させ、携帯電話のフォントサイズを調整する方法を紹介します。携帯電話のフォント サイズを調整する必要があるのはなぜですか - フォント サイズを調整すると、テキストがより鮮明で読みやすくなります - さまざまな年齢のユーザーの読書ニーズに適しています - フォント サイズを使用すると、視力の悪いユーザーにとって便利です携帯電話システムの設定機能 - システム設定インターフェイスに入る方法 - 設定インターフェイスで「表示」オプションを見つけて入力します。 - 「フォント サイズ」オプションを見つけて、サードパーティでフォント サイズを調整します。アプリケーション - フォント サイズの調整をサポートするアプリケーションをダウンロードしてインストールします - アプリケーションを開いて、関連する設定インターフェイスに入ります - 個人に応じて

携帯電話の画面を保護する携帯電話のスクリーンプロテクターの選び方 (携帯電話のスクリーンプロテクターを購入する際のいくつかの重要なポイントとヒント) 携帯電話の画面を保護する携帯電話のスクリーンプロテクターの選び方 (携帯電話のスクリーンプロテクターを購入する際のいくつかの重要なポイントとヒント) May 07, 2024 pm 05:55 PM

スマートフォンの普及に伴い、携帯フィルムは欠かせないアクセサリーの一つとなりました。耐用年数を延ばすには、携帯電話の画面を保護する適切な携帯電話フィルムを選択してください。この記事では、読者が自分に最適な携帯電話フィルムを選択できるように、携帯電話フィルムを購入する際のいくつかのポイントとテクニックを紹介します。携帯電話フィルムの素材と種類を理解する:PET フィルム、TPU など。 携帯電話フィルムは強化ガラスを含むさまざまな素材でできています。 PETフィルムは比較的柔らかく、強化ガラスフィルムは耐傷性に優れ、TPUは耐衝撃性能に優れています。選択する際は、個人の好みやニーズに基づいて決定できます。画面の保護の程度を考慮してください。携帯電話のフィルムの種類によって、画面の保護の程度も異なります。 PETフィルムは主に傷防止の役割を果たしますが、強化ガラスフィルムは落下耐性に優れています。より良いものを選ぶことができます

Excel関数の公式の完全なコレクション Excel関数の公式の完全なコレクション May 07, 2024 pm 12:04 PM

1. SUM 関数は、列またはセルのグループ内の数値を合計するために使用されます (例: =SUM(A1:J10))。 2. AVERAGE 関数は、列またはセルのグループ内の数値の平均を計算するために使用されます (例: =AVERAGE(A1:A10))。 3. COUNT 関数。列またはセルのグループ内の数値またはテキストの数をカウントするために使用されます。例: =COUNT(A1:A10)。 4. IF 関数。指定された条件に基づいて論理的な判断を行い、結果を返すために使用されます。対応する結果。

C++ を使用して HTTP ストリーミングを実装するにはどうすればよいですか? C++ を使用して HTTP ストリーミングを実装するにはどうすればよいですか? May 31, 2024 am 11:06 AM

C++ で HTTP ストリーミングを実装するにはどうすればよいですか? Boost.Asio と asiohttps クライアント ライブラリを使用して、SSL ストリーム ソケットを作成します。サーバーに接続し、HTTP リクエストを送信します。 HTTP 応答ヘッダーを受信して​​出力します。 HTTP 応答本文を受信して​​出力します。

Java フレームワークのセキュリティ アーキテクチャ設計は、ビジネス ニーズとどのようにバランスをとる必要がありますか? Java フレームワークのセキュリティ アーキテクチャ設計は、ビジネス ニーズとどのようにバランスをとる必要がありますか? Jun 04, 2024 pm 02:53 PM

Java フレームワーク設計では、セキュリティ ニーズとビジネス ニーズのバランスをとることでセキュリティを実現し、主要なビジネス ニーズを特定し、関連するセキュリティ要件に優先順位を付けます。柔軟なセキュリティ戦略を策定し、脅威に階層的に対応し、定期的に調整します。アーキテクチャの柔軟性を考慮し、ビジネスの進化をサポートし、抽象的なセキュリティ機能を考慮します。効率と可用性を優先し、セキュリティ対策を最適化し、可視性を向上させます。

Struts 2 フレームワークのセキュリティ構成と強化 Struts 2 フレームワークのセキュリティ構成と強化 May 31, 2024 pm 10:53 PM

Struts2 アプリケーションを保護するには、次のセキュリティ構成を使用できます。 未使用の機能を無効にする コンテンツ タイプ チェックを有効にする 入力を検証する セキュリティ トークンを有効にする CSRF 攻撃を防ぐ RBAC を使用してロールベースのアクセスを制限する

See all articles