複数の IP を持つ Windows セットアップがあり、Rebol スクリプト (Rebol/Core 2.78 上) が個々のバインドを作成し、それらの IP のそれぞれで同じポート番号をリッスンすることを望みます。
ごく最近まで、これを行うための構文は次のとおりだと思っていました。
Port1Test: open/lines tcp://:80 browse http://10.100.44.6?
Port2Test: open/lines tcp://:80 browse http://10.100.44.7?
しかしPort2Test
、その部分が完全に無視されているため、行が失敗していることがわかりましたbrowse http://10.100.44.6?
(そして今検索しても、最初にその構文を取得した場所を見つけることさえできません)。
リスニングポートを指定する方法について私が見つけることができるすべてのドキュメントを読むと、次のようになります。
Port1Test: open/lines tcp://:80
Port1Test
ポートを調べると、ほとんどの設定が に設定されてnone
おり、いくつかは次のように設定されていることがわかります。
scheme: 'tcp
host: none
port-id: 80
local-ip: 0.0.0.0
local-port: 80
そこで、これらの値を次のように変更しようとしました。
Port1Test: open/lines tcp://:80 ; Create port, as before. Then modify below
Port1Test/host: 10.100.44.6 ; Might this be the binding interface?
Port1Test/port-id: 1 ; I guess this is just an id?
Port1Test/local-ip: 10.100.44.6 ; This ought to be the binding interface.
Port2Test: open/lines tcp://:80 ; Create port, as before. Then modify below
Port2Test/host: 10.100.44.7 ; Might this be the binding interface?
Port2Test/port-id: 2 ; I guess this is just an id?
Port2Test/local-ip: 10.100.44.7 ; This ought to be the binding interface.
Port1Test
残念ながら、との IP 値を交換するなど、上記の変更のすべてのバリエーションは、 のPort2Test
作成時に失敗しますPort2Test
。:-(
見落としているものがあると確信していますが、ポートを特定のインターフェイスにバインドしながらポートを初期化する方法についてのヒントはどこにも見つかりません。
どんなヒントでも大歓迎です!
編集:
Rebol がインターフェイスにバインドする方法は、今ではかなり明白ですが、それを変更する方法はまだ謎です。
1 つのネットワーク カードに関連付けられた 2 つの IP (== インターフェイス) があるとします: 10.100.1.1 と 10.100.1.2。10.100.1.1:80 で、その特定のインターフェイスにバインドできることがわかっている Tomcat アプリケーションをセットアップしました。次に、同じくポート 80 を要求する REBOL アプリケーションを開始します。どちらも正常に動作し、Rebol アプリケーションが 10.100.1.2 にバインドされているかのように、1 つの IP だけでそれぞれにアクセスできます。次に、Tomcat アプリケーションをシャットダウンし、起動しようとしました。インターフェイスが使用されているため、これは不可能であることが判明しました。両方の IP にアクセスすると、両方の IP で Rebol アプリケーションにアクセスできることがわかります。
ここで機能するのは Rebol のアクティブなメカニズムではありませんが、Rebol は 0.0.0.0 インターフェース (サーバーのコンテキストでは、0.0.0.0 は「ローカル マシン上のすべての IPv4 アドレス」を意味します) を要求しているため、現在利用可能な任意のアドレスに変換されます。インターフェイス、およびインターフェイスが利用可能になったときの延期された要求。
ポートの作成時に、Rebols のデフォルト インターフェイス 0.0.0.0 を別のものに変更する方法を見つけられると本当にうれしいです!