~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...::: サーバーアプリケーションをどのアドレスにバインドすればよいですか? :::...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
推奨: 0.0.0.0 // 利用可能なすべてのアドレスにバインドします。
そのとき何をしているのかわかっている場合は、ルーターによってマシンに割り当てられた IPを使用する必要があります。これは、 Local Networkの外でパケットを待っている場合にのみ必要です。
それ以外の場合は、127.0.0.1 でバインドする必要があります
マシンに割り当てられた IP は次のようになります。
例: 192.168.1.5
ネットマスク: 255.255.255.0 <-- これは無視してください
それを見つける、簡単な方法:
でアドレスを取得できますが、$_SERVER['SERVER_ADDR']
それに頼るべきではありません。
それを見つける、ハードコードされた方法:
Windows の場合: ipconfig /allと入力し、 IPv4 アドレスエントリを検索します。
Linux の場合: ifconfig
と入力します。
コンソールにアクセスできない場合は、phpinfo()を使用します。<-それについてはわかりません
バインド http://www.example.com/dir/
は間違っており、機能しません。
注意:マシンは外部 IP (DSLAM によって割り当てられたもの、つまり128.31.53.90 )について何も知りませんは主にルーターの仕事であるためです。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...::: サーバーアプリケーションをどのポートにバインドすればよいですか? :::...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
クライアントがデータを送信すると、最初にルーターに到着し、ルーターが処理を決定します。決定は、ルーターの NAT テーブルと着信ポートに基づいています。
通常、NAT テーブルは次のようになります。
+==============================================+
| LAN IP | Incoming Port | Outgoing Port |
+============+=================+===============+
|192.168.1.5 | 8080 | 80 |
+------------+-----------------+---------------+
|192.168.1.2 | 25 | 25 |
+------------+-----------------+---------------+
X を次の構造を持つパケットとします。
Header Data
+===================+===============+
|-| Your External IP | ... |
|X| | ... |
|-| Destination Port | ... |
+===================+===============+
ルーターは、テーブル内のdestination port
同様のincoming port
エントリ
を取得して検索します
。見つかった場合は、パケットを一致する LAN IP にリダイレクトします: 送信ポート
例えば:
パケットは宛先ポート 8080 で到着し、192.168.1.5:80 に転送されます。
>> 25 >> 192.168.1.2:25
したがって、8080 で誰かが送信したパケットをキャッチするには、192.168.1.5:80、
またはポート 25 でパケットを待機している場合は 25 でバインドする必要があります。
注意: Web サーバーを実行している場合、ポート 80 でのバインドは失敗します。これは、デフォルトでポート 80 にバインドされているためです (変更しない限り)。