私は次のコマンドを実行してhttpサーバーを実行しました
python -m SimpleHTTPServer
そして、次のメッセージを取得
Serving HTTP on 0.0.0.0 port 8000 ...
しかし、ローカルWi-Fiネットワーク内の別のマシン/モバイルでアクセスできないため、ローカルマシンからアクセスしてアクセスできました。
誰かが問題を理解できるかどうかを知ってください。前もって感謝します。
SimpleHTTPServer
はデフォルトでIPアドレス0.0.0.0
にバインドします。これは、実質的に「任意のアドレス」を意味する特別なアドレスです。 localhost
や127.0.0.1
などにバインドする場合、127.0.0.1
は ループバックデバイス に属するため、ローカルマシンからのみ接続できます。ただし、0.0.0.0
を使用すると、サーバーはlo
、eth0
およびその他のネットワークデバイスにバインドされます。
したがって、小さなサーバーは、ネットワーク内の他のマシンから到達可能です。それは、(あなたの小さなサーバー以外の)何かがそれを禁止していることを示しているのではなく、おそらくファイアウォールです。別のマシンからのnmap
でポート8000の状態を確認できます(nmap
をインストールする必要がある場合があります)。あなたの小さなサーバーがIP 192.168.0.1で実行されているとします。他のマシンは192.168.2.101です。その後、192.168.2.101から実行します
nmap -p 8000 192.168.0.1
出力は次のようになります
PORT STATE SERVICE
8000/tcp open http-alt
状態が「open」の場合、ポートは到達可能であり、そこにリッスンしているものがあるため、小さなサーバーに到達できるはずです。
状態が「クローズ」の場合、ポートは到達可能ですが、そこにリッスンするものはありません。その場合、サーバーが終了したか、IPまたはポート番号を混同した可能性があります。
状態が「フィルタリング」されている場合は、小さなサーバーにアクセスできないようにする何らかの種類のIPフィルタリングファイアウォールが動作しています。
python -m SimpleHTTPServer 8000
を指定してSimpleHTTPServerを起動すると、
次を使用して、端末でローカルネットワーク内のサーバーのIPアドレスを見つける必要があります。
linux/mac:ifconfig
windows:ipconfig
その後、モバイルデバイスでip_address:PORT
に到達してください。
eg:192:168.1.5:8000