ホームページ バックエンド開発 PHPチュートリアル php 获取本机外网/公网IP的代码_PHP

php 获取本机外网/公网IP的代码_PHP

Jun 01, 2016 pm 12:18 PM
ip

大家一般都是用$_SERVER['REMOTE_ADDR']来获取用户IP,

但是如果使用了反向代理的,HTTP头中REMOTE_ADDR就不是用户的地址,反而是上一级代理的地址了。

经过我的研究有两种方法来获取用户的真实外网IP。


方法一:curl
复制代码 代码如下:
function get_onlineip() {
$ch = curl_init('http://www.ip138.com/ip2city.asp');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$a = curl_exec($ch);
preg_match('/\[(.*)\]/', $a, $ip);
return $ip[1];
}



方法二:$_SERVER['HTTP_X_FORWARDED_FOR']来获取相应的地址
复制代码 代码如下:
function get_onlineip() {
$onlineip = '';
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$onlineip = $_SERVER['REMOTE_ADDR'];
}
return $onlineip;
}

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

IP と MAC のバインドは何を意味しますか? IP と MAC のバインドは何を意味しますか? Mar 09, 2023 pm 04:44 PM

IP および MAC バインディングとは、特定の IP アドレスを特定の MAC アドレスに関連付けることを指し、その結果、MAC アドレスを使用するデバイスのみがネットワーク通信に IP アドレスを使用できるようになります。 ip と mac をバインドすると、バインドされたホストの IP アドレスがスプーフィングされるのを防ぐことができます。前提条件: 1. MAC アドレスは一意であり、スプーフィングできません。ルータに直接接続されているネットワーク上のホストにのみバインドできます (つまり、ホストのゲートウェイはルーター上にあります)。

Web サイトは、nginx を通じてブラック/ホワイトリスト IP 制限や国および都市の IP アクセス制限をどのように設定しますか? Web サイトは、nginx を通じてブラック/ホワイトリスト IP 制限や国および都市の IP アクセス制限をどのように設定しますか? Jun 01, 2023 pm 05:27 PM

1. ブラック/ホワイト リストの IP 制限付きアクセス設定 nginx ブラック リストとホワイト リストを設定するにはいくつかの方法がありますが、ここでは一般的に使用される 2 つの方法のみを紹介します。 1. 最初の方法:allow、denydeny、およびallow命令はngx_http_access_moduleに属しており、nginxはデフォルトでこのモジュールをロードするため、直接使用できます。この方法は最も単純で直接的です。この設定はファイアウォールの iptable に似ています。使用方法: 構成ファイルに直接追加します: #Whitelist 設定の後に、アクセス可能な許可 IPlocation/{allow123.13.123.12;allow23.53.32.1/100;denyall;}#ブラックリスト設定、

WeChatでIPアドレスを確認する方法 WeChatでIPアドレスを確認する方法 May 31, 2023 am 09:16 AM

WeChat で IP アドレスを確認する方法: 1. パソコン版 WeChat にログインし、画面下のタスクバーを右クリックし、「タスク マネージャー」をクリックします。 2. タスク マネージャーが表示されたら、「」をクリックします。左下隅の「詳細」をクリックします; 3. タスク管理 ブラウザの「パフォーマンス」オプションを入力し、「リソース モニターを開く」をクリックします; 4. 「ネットワーク」を選択し、WeChat プロセス「Wechat.exe」を確認します; 5. 「」をクリックします。以下の「TCP 接続」を使用して、WeChat ネットワークの IP 関連の状況を監視します。メッセージを送信して返信を受け取ると、相手の IP アドレスがわかります。

nginxでディレクトリホワイトリストとIPホワイトリストを設定する方法 nginxでディレクトリホワイトリストとIPホワイトリストを設定する方法 May 18, 2023 pm 03:52 PM

1. ディレクトリのホワイトリストを設定します: 指定されたリクエスト パスに制限はありません。API ディレクトリへのリクエスト パスに制限がない場合は、server{location/app{proxy_passhttp://192.168.1.111: 8095/app ;limit_connconn20;limit_rate500k;limit_reqzone=fooburst=5nolay;}location/app/api{proxy_passhttp://192.168.1.111:8095/app/api}}#nginx は正確なマッチングを優先するため

nginxリバースプロキシに基づいてユーザーの実際のIPアドレスを取得する方法 nginxリバースプロキシに基づいてユーザーの実際のIPアドレスを取得する方法 May 13, 2023 pm 05:07 PM

はじめに nginx がリバース プロキシとして使用される場合、デフォルト設定バックエンドによって取得される IP アドレスは nginx から取得されます。ユーザーの実際の IP ではなく、request.getRemoteAddr(); を使用して nginx の IP アドレスを取得します。1. Nginx 設定を変更します。サーバー{listen80;server_namejenkins.local.com;location/{proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_passhttp://192.168.10。

ローカルIPアドレスのクエリ ローカルIPアドレスのクエリ Jan 05, 2024 pm 01:42 PM

このマシンの IP アドレスを照会する方法は次のとおりです。 1. Windows システムでは、「スタート メニュー」を開き、「cmd」を検索してコマンド プロンプトを開き、「ipconfig」と入力して Enter キーを押します。 「IPv4 アドレス」という名前の行、その隣の数字はマシンの IP アドレスです; 2. macOS システムで、画面の左上隅にある Apple アイコンをクリックし、「システム環境設定」を選択し、現在接続されているネットワークを見つけます「ネットワーク」オプションで「詳細」ボタンをクリックし、「TCP/IP」タブなどでマシンのIPを見つけます。

Wi-Fi に IP 割り当てが表示されない場合はどうすればよいですか? Wi-Fi に IP 割り当てが表示されない場合はどうすればよいですか? Aug 30, 2023 am 11:58 AM

Wi-Fi に IP 割り当てが表示されない場合の解決策: 1. デバイスとルーターを再起動し、デバイスの Wi-Fi 接続をオフにし、デバイスの電源を切り、ルーターの電源をオフにして、数分待ってから、ルーターを再度開いて Wi-Fi に接続します。 ; 2. ルーターの設定を確認し、DHCP を再起動し、DHCP 機能が有効になっていることを確認します; 3. ネットワーク設定をリセットすると、保存されているすべての WiFi ネットワークとパスワードが削除されます。この操作を実行する前にバックアップされていることを確認してください; 4. アップデートルーターのファームウェアを更新するには、ルーター管理インターフェイスにログインし、ファームウェアの更新オプションを見つけて、プロンプトに従います。

IPとはどういう意味ですか? IPとはどういう意味ですか? Jan 05, 2024 pm 01:34 PM

IP の一般的な意味には、「IP アドレス」、「知的財産」、「独自のセールスポイント」、および「独立性」が含まれます: 1. IP アドレスは、コンピュータ ネットワーク内の機器を識別し、位置を特定するために使用されるデジタル識別子です。2. 知的財産とは、特許、商標、著作権、企業秘密など、人々の知的創造物が享受する権利と利益に対する権利と利益 3. 独自のセールスポイントとは、競合他社と区別し、顧客を引き付ける製品またはサービスの独自の特徴です 4. 独立性国または地域が外部の制御や干渉を受けることなく独立した決定を下し、自らを管理する能力を指します。

See all articles