-2

うーん、 $_SERVER['REMOTE_ADDR']WhatIsMyIP2 つの異なる IP アドレスが表示されます。「whatismyip」に表示されるように、IPアドレスをキャッチしたい。

4

3 に答える 3

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.21your computeryour computeryour web server

whatismyip.com85.89.XX.XXからアクセスしようとすると、 が発信元の IP アドレスとして表示されます。これは、データが からへの途中でyour computer通過するためです。NAT ルーターは、NAT テクノロジーを使用してリクエストをプロキシし、その過程で実際のIP アドレスを隠します。リクエストがルーターからではなく、ルーターから送信されたように見えます。NAT routeryour computerwhatismyip.comwhatismyip.comyour computer

85.89.XX.XXから答えを得たいというのはかなり恣意的です。これは「実際の IP」ではなく、 と の間の通信とはまったく関係のないルーターの IP です。$_SERVER['REMOTE_ADDR']your web serveryour computeryour web server

于 2013-02-07T16:09:28.903 に答える
1

このサイトには、あなたのグローバル IP アドレス (インターネットへの接続に使用するもの) が表示されています。REMOTE_ADDRクライアントのアドレスが表示されますが、これは自分のマシンであり、インターネットをまったく経由していないと推測されます。そのため、グローバル IP アドレスではなく、ローカル IP アドレスが表示されます。

結論: リモート サーバー (whatismyip.com) にはグローバル アドレスを要求しますが、ローカル サーバーにはローカル アドレス (同じマシン上にある場合は 127.0.0.1) を要求します。

于 2013-02-07T13:37:23.397 に答える
0

ローカル Web サーバーを実行していて、$_SERVER['REMOTE_ADDR']それを使用すると、ローカル ネットワーク (別のコンピューターの場合) または 127.0.0.1 (AKA localhost) のアドレスが自分のコンピューターの場合に返されます。一方、「What Is My IP」は、インターネットに対するネットワークの IP アドレスを調べます。これが何が起こっているのかを明確にするのに役立つことを願っています。

いずれにせよ、$_SERVER['REMOTE_ADDR']適切な Web サーバーで「ライブ」を実行している場合は問題なく動作するはずなので、それを計画している場合は心配する必要はありません。

于 2013-02-07T13:56:45.657 に答える