ユーザークライアントの実際のIPを取得するPHPソリューション
クライアント IP の取得は、実際には簡単な作業ではありません。IP スプーフィングやプロキシの問題により、クライアント IP の取得の信頼性が損なわれる可能性があり、100% 正確に取得することはできません。しかし、当社では、より完全な方法を使用して顧客の IP を取得するよう努めています。以下のエディタでは、ユーザーのクライアントの実際の IP を取得するための PHP の方法を紹介します。IP スプーフィングと代理店の問題のため、クライアントの IP を取得するのは実際には簡単な作業ではありません。これは簡単な作業ではありません。IP の信頼性が損なわれるため、100% 正確であることはできません。しかし、私たちは、クライアントの実際の IP を取得するためのより完全な方法を模索しています。php を使用して IP を取得する方法は数多くあります。 .
function getIp(){ if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) $ip = getenv("REMOTE_ADDR"); else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) $ip = $_SERVER['REMOTE_ADDR']; else $ip = "unknown"; return($ip);
ここでは、getenv() と strcasecmp() という 2 つの関数が使用されており、値を取得できる場合は、それを返します。
$_SERVER これはサーバーのスーパー グローバル変数配列です。$_SERVER['REMOTE_ADDR'] を使用してクライアントの IP アドレスを取得することもできます。この 2 つの違いは、getenv がサポートしていないことです。 IIS の isapi モードで実行される php.
strcasecmp(string1, string2) 文字は、string1 と string2 が等しい場合に、より大きい数値である 0 を返します。 0 より小さい場合は、関数は最初に顧客の IP を使用します。それが機能しない場合は、プロキシを使用します。 REMOTE_ADDR.
IP スプーフィングと複数のプロキシ コードを考慮した、より詳細な IP 検出方法も見ました。 方法は同様です。 1. 使用されません プロキシ サーバーの PHP がクライアントを取得します。 IP:
REMOTE_ADDR = クライアントIPHTTP_X_FORWARDED_FOR = 値がないか、表示されません
2. 透過プロキシサーバーを使用する状況: 透過プロキシREMOTE_ADDR = 最後のプロキシサーバーIP HTTP_X_FORWARDED_FOR = クライアントの実際のIP (複数のプロキシ サーバーを通過する場合、この値は同様です: 221.5.252.160、203.98.182.163、203.129.72.215)
このタイプのプロキシ サーバーは、依然としてクライアントの実際の IP をアクセス オブジェクトに送信しますが、本当の身元を隠すことはできません。REMOTE_ADDR = 最後のプロキシ サーバー IP
HTTP_X_FORWARDED_FOR = プロキシ サーバー IP (複数のプロキシ サーバー経由、この値は次のようになります)。 .182.163, 203.98.182.163, 203.129.72.215)4不正なプロキシ サーバーの使用状況: 歪んだプロキシ
REMOTE_ADDR = プロキシ サーバー IPHTTP_X_FORWARDED_FOR = ランダム IP (複数のプロキシ サーバーを通過する場合、この値は同様です: 220.4.251.159、203.98.182.163、203.129.72.215)
この場合、クライアントはプロキシ サーバーを使用していますが、クライアントの実際の IP ではなく偽のランダム IP (220.4.251.159) を捏造してそれを欺いていることも明らかになります
REMOTE_ADDR = プロキシ サーバー IP
HTTP_X_FORWARDED_FOR = 値がない、または表示されません
php
登録とログインインターフェースの実装事例
php
array_key_exists()とisset()の違いphpチャットルーム構築の実践ウェブソケット上
以上がユーザークライアントの実際のIPを取得するPHPソリューションの詳細内容です。詳細については、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 にアップグレードする方法について説明します。

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

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。
