ローカルホストとIPアドレスの違い

ローカルホストとIPアドレスの違い

Pythonでソケットをlocalhost,8200にバインドすると、次のようにアクセスできます。http://localhost:8200/。 だがしかしhttp://xxx:8200/ より

Pythonでソケットをxxxx,8200,machinename,8200にバインドすると、次のようにアクセスできます。http://xxx:8200/ よりそしてhttp://マシン名:8200/、 だがしかしhttp://localhost:8200/

localhost は「このマシン」を意味し、それを使用するとマシンの IP アドレスに「ループバック」すると思っていましたが、どうやら IP が異なるようです。

127.0.0.1 は常にマシンの IP アドレスとは異なる IP アドレスですか?

アップデート:

実際の数値は異なることは理解していますが、ループバックは何をしますか?

例えばウィキペディアと言う
'ウェブブラウザでURLを指定するhttp://127.0.0.1/またはhttp://ローカルホスト/そのコンピュータのウェブサイトにアクセスする」

しかし、その Web サイトは xxxx でもアクセス可能であり、おそらく xxxx 上の単一のソケットで設定されるでしょう。では、両方の参照はどのように機能するのでしょうか?

結論:

127.0.0.1とxxxxがこのように動作するということをようやく理解できたと思います

--127.0.0.1 ==\
               >- Computer
--x.x.x.x   ==/

そしてそうではない

--127.0.0.1 ==\
--------------- x.x.x.x >- Computer

または

--x.x.x.x ==\
--------------- 127.0.0.1 >- Computer

助けてくれてありがとう

答え1

あなたの質問に答えます。

127.0.0.1 は、マシンの IP アドレスとは異なる IP アドレスであるだけでなく、異なるインターフェイスでもあります。127.0.0.1 は、ローカル ネットワーク上では表示されません。これは、ループバック アダプタの特別な内部 IP アドレスです。

xxxx はイーサネット カードになります。

ちなみに「localhost」は単にホストファイル内の127.0.0.1を指すエントリです。

ソケットを127.0.0.1:8200にバインドすると、ローカルで実行されているクライアントのみがアクセスでき、http://127.0.0.1:8200またはhttp://localhost:8200(または 127.0.0.1 を指す dns または hosts ファイル エントリ)。

xxxx:8200にバインドされたソケットは、http://xxx:8200 よりまたは、それを指す DNS または hosts ファイル エントリ。

ソケットを 127.0.0.1 にバインドしても、イーサネット インターフェイスでも自動的に使用可能になるわけではありません。

そのため、xxxx:8200に接続できません

ポート 8200 をすべての利用可能なインターフェース (0.0.0.0) にバインドすれば動作するはずです。

ループバック アダプタのその他の機能:

ループバック インターフェイスは仮想インターフェイスです。これは、プログラムが同じマシン上で互いに通信できるようにするために使用されます。マシンの IP アドレスを参照する方法ではありません。127.0.0.1 は、ループバック仮想アダプタの IP アドレスです。

ループバック アダプタに関するもう 1 つの特徴は、仮想であるため、実際にはパケットをネットワーク カードに渡さないことです。

答え2

例えばウィキペディアでは「ウェブブラウザでURLを指定するとhttp://127.0.0.1/またはhttp://ローカルホスト/そのコンピュータのウェブサイトにアクセスする」

少し不正確です。5月そうしてください。同様に、Web サイトがまったく表示されない可能性があり、xxxx アドレスを使用したときに表示されるものとは異なる内部 Web サイトが表示される可能性もあります。

127.0.0.1は自分のマシンを指していますが、自分のマシンに到達しても同じように動作するわけではありません。

技術的な例えをしない場合は、これらを家に入る異なるドアと考えることができます。

どちらも同じ家を指していますが、同じものではありません。それぞれのドアから同じ部屋に入ることも、別の部屋に入ることもできます。また、片方のドアをロックしてもう片方のドアをロックしないこともできます。

ウェブサイトを構成するときに、どのアドレスにバインドするかを指定しますが、多くの場合、その答えはすべてのアドレスです。(これは、すべてのドアが 1 つの部屋に通じているのと同じです)

また、Web サイトを 1 つのアドレスのみにバインドするように指定することもできます。(これは、1 つを除くすべてのドアをロックするのと同じです。)

2 つ (またはそれ以上) の Web サイトがある場合は、それらを別々のアドレスにバインドできます (これは、各ドアが別々の部屋につながることと同じです)。

両方の参照がどのように機能するかの例を挙げると、私の Windows 7 コンピューターには IIS がインストールされており、IIS マネージャーを開いて既定の Web サイトを右クリックすると、[バインドの編集] メニュー オプションが表示されます。これを選択すると、バインドの一覧が表示されます。バインドは 1 つしかありませんが、IP アドレスには * があり、IIS がすべての IP アドレスをリッスンしていることを意味します。

答え3

システム上のすべての IP アドレスは独立しており、ソケットをすべてのインターフェイスにバインドするように OS に指示する特別なアドレス 0.0.0.0 を除き、ソケットによって個別にバインドできます。

関連情報