
我有兩台電腦。其中一個有一台正在運行的伺服器,另一個有一個與該伺服器通訊的應用程式。這些計算機被部署到不同的站點。有時這些電腦可以直接連接在一起,有時它們只能透過我無法控制的無線連接進行連接。作為附加要求,如果連線可用,伺服器還需要能夠使用 dhcp 存取網際網路。目標是能夠在辦公室中設置這些計算機,然後將它們部署到幾乎不需要現場配置的站點。
我可以做什麼來確保運行應用程式的電腦始終(或在盡可能多的情況下)可以找到伺服器並與其通訊(透過連接埠 80 的 HTTP)。
我的想法是設定具有多個IP的伺服器。它可以在一台電腦上使用 DHCP 存取網際網路。另一個將設定為靜態 IP。應用程式電腦將被設定為提前知道該靜態 IP 位址並向其發出請求。但是,在展示如何完成它的教程中,我必須輸入我的網關和子網路遮罩。這些不會根據我加入的網路而改變嗎?
如果我遺漏了一些非常明顯的東西或忽略了其他因素,請原諒。我對網路幾乎一無所知。
如果有一個硬體可以提供幫助,那就太好了。
這是vista和xp。
答案1
試著猜測哪個靜態 IP 位址不會發生衝突是自找麻煩。正如 derobert 所建議的,多播 DNS + DNS-SD 是一個很好的選擇。 Windows 的唯一堆疊是蘋果的卓悅實施,這將使您能夠在本地網路上註冊和解析您的服務以及進行一些進一步的配置,穿過防火牆(如果路由器支援 NAT-PMP 或 uPnP)並使用適當的 DNS 更新 DNS 區域-SD 記錄。
您可能需要編寫一些腳本來將 Bonjour 與您的應用程式的配置聯繫起來,但如果不知道您的應用程式是什麼,就很難說什麼是最合適的。也就是說,使用簡單的批次或WSH 腳本自動化的dns-sd.exe 命令列實用程式可以完成這項工作,Python、Perl 或Ruby 的各種綁定也可以完成這項工作,以實現不那麼瑣碎的配置。
答案2
解決此問題的方法通常是使用現有的幾種服務發現協議之一。例如,參見維基百科的 Zeroconf 文章。群播 DNS + DNS-SD 似乎是當前流行且廣泛支援的方法,儘管還有其他方法(維基百科提到最多)。
例如,apache2 存在一個 mod-dnssd,它允許 Apache 使用 Avahi 透過多重播送 DNS 宣告自己。
答案3
既然它們似乎總是在同一個網路上,您不能在「伺服器」電腦上運行 WINS 並透過 NetBIOS 名稱進行連接嗎?
這樣您就根本不需要擔心 IP 位址。
其實現在想起來,你可能連WINS都不需要,NetBIOS應該可以搞定。