1

BaseHTTPServer モジュールを使用して、Python で http サーバーをホストしています。

127.0.0.1/192.168.0.1 など、http サーバーをホストしている IP を指定する必要がある理由を理解したいと思います。[一般的な http サーバーの概念であり、Python に固有のものではない可能性があります]

マシンの IP を知っている人が http サーバーに接続できるようにできないのはなぜですか?

http サーバーが同時に 2 つのネットワークに接続されている場合に問題が発生し、両方のネットワークで http サーバーを提供したいと考えています。また、http サーバー マシンのホットスポット モードから別の Wi-Fi ルーターに接続するように切り替えると、IP がオンザフライで変更されることがよくあります。

4

2 に答える 2

2

サーバーの IP アドレスを指定する必要があります。これは主に、ソケットをリッスンするための基になるシステム コールで必要になるためです。下位レベルでは、使用するペア (IP アドレス、ポート) を宣言し、それをリッスンして着信接続を受け入れます。

もう 1 つの理由は、多くの場合、プロフェッショナル グレードのサーバーには複数のネットワーク インターフェイスと複数の IP アドレスがあり、一部のサービスは一部のインターフェイス アドレスのみをリッスンする必要があるためです。

うまくいけば、特別なアドレスがあります:

  • localhost または 127.0.0.1 はループバック アドレスで、ローカル マシンからのみアクセスできます。現在、ローカルサービスのテストに使用されています
  • 0.0.0.0 (任意) は、すべてのローカル インターフェイスをリッスンすることを宣言するために使用される特別なアドレスです。あなたが求めているのはここだと思います。
于 2015-08-20T07:32:01.110 に答える
2

0.0.0.0 で実行してみてください。これにより、すべてのインターフェイスからの接続が受け入れられます。IPを明示的に指定することは、一般的には良い習慣です(負荷分散、キャッシュサーバー、セキュリティ、内部ネットワークのみのマイクロサービスなど)が、あなたの話から判断すると、これは本番サーバーではなく、内部LANアプリケーションです.

于 2015-08-20T07:18:34.260 に答える