うーん、
$_SERVER['REMOTE_ADDR']
WhatIsMyIPで2 つの異なる IP アドレスが表示されます。「whatismyip」に表示されるように、IPアドレスをキャッチしたい。
3 に答える
一部のネットワーキング 101:
+--+
| |
+--+
whatismyip.com +--+
108.162.207.135 +----- | |
| +--+
| +--+ | your computer
+------ | | ------+ 10.127.254.21
+--+ |
NAT router | +--+
85.89.XX.XX +----- | |
+--+
your web server
10.127.254.22
これがネットワーク設定である場合、2 つの通信時のIP としてyour web server
表示されます。これは、データを から にルーティングするために、パケットが 2 つの間のワイヤ上を直接移動する必要があるためです。2 つが同じマシンである場合は、その必要さえありません。10.127.254.21
your computer
your computer
your web server
whatismyip.com
85.89.XX.XX
からアクセスしようとすると、 が発信元の IP アドレスとして表示されます。これは、データが からへの途中でyour computer
通過するためです。NAT ルーターは、NAT テクノロジーを使用してリクエストをプロキシし、その過程で実際のIP アドレスを隠します。リクエストがルーターからではなく、ルーターから送信されたように見えます。NAT router
your computer
whatismyip.com
whatismyip.com
your computer
上85.89.XX.XX
から答えを得たいというのはかなり恣意的です。これは「実際の IP」ではなく、 と の間の通信とはまったく関係のないルーターの IP です。$_SERVER['REMOTE_ADDR']
your web server
your computer
your web server
このサイトには、あなたのグローバル IP アドレス (インターネットへの接続に使用するもの) が表示されています。REMOTE_ADDR
クライアントのアドレスが表示されますが、これは自分のマシンであり、インターネットをまったく経由していないと推測されます。そのため、グローバル IP アドレスではなく、ローカル IP アドレスが表示されます。
結論: リモート サーバー (whatismyip.com) にはグローバル アドレスを要求しますが、ローカル サーバーにはローカル アドレス (同じマシン上にある場合は 127.0.0.1) を要求します。
ローカル Web サーバーを実行していて、$_SERVER['REMOTE_ADDR']
それを使用すると、ローカル ネットワーク (別のコンピューターの場合) または 127.0.0.1 (AKA localhost) のアドレスが自分のコンピューターの場合に返されます。一方、「What Is My IP」は、インターネットに対するネットワークの IP アドレスを調べます。これが何が起こっているのかを明確にするのに役立つことを願っています。
いずれにせよ、$_SERVER['REMOTE_ADDR']
適切な Web サーバーで「ライブ」を実行している場合は問題なく動作するはずなので、それを計画している場合は心配する必要はありません。