我有两台电脑。 其中一个服务器正在运行,另一个则有一个与该服务器通信的应用程序。 这些电脑被部署到各个网站。 有时候这些电脑可以直接连接在一起,有时候它们只能通过我无法控制的无线连接来连接。 作为附加要求,如果连接可用,服务器也需要能够使用dhcp访问互联网。 目标是能够将这些计算机放置在办公室,然后将它们部署到几乎没有现场configuration的站点。
我能做些什么来确保运行应用程序的计算机可以总是(或尽可能多的情况下)find服务器并与之通信(通过端口80的HTTP)。
我的想法是设置多个IP的服务器。 它可以使用一个DHCP访问互联网。 另一个将被设置为静态IP。 应用程序计算机将被configuration为提前知道该静态IP地址并向其发出请求。 但是,在说明如何完成它的教程中,我必须input我的网关和子网掩码。 而不是这些改变取决于我join的networking?
请原谅,如果我失去了非常明显的东西或忽略其他因素。 我对networking一无所知。
如果有一块硬件可以提供帮助,那很好。
这是Vista和XP。
试图猜测什么样的静态IP地址不会发生冲突,是在惹麻烦。 正如derobertbuild议的组播DNS + DNS-SD是一个很好的select。 Windows的唯一堆栈是Apple的Bonjour实现,它将使您能够在本地networking上注册和parsing您的服务,并进行一些进一步的configuration,在防火墙上打洞(如果路由器支持NAT-PMP或uPnP)和使用适当的DNS-SDlogging更新DNS区域。
您可能需要做一些脚本来将Bonjour与您的应用程序的configuration绑定,但不知道您的应用程序是什么,很难说什么是合适的。 也就是说,使用简单的批处理或WSH脚本自动执行的dns-sd.exe命令行实用程序可以完成这项工作,对Python,Perl或Ruby的各种绑定也可以进行较less的configuration。
通常可以使用已经可用的几种服务发现协议之一来解决这个问题。 例如,参见Wikipedia的Zeroconf文章 。 多播DNS + DNS-SD似乎是目前stream行和广泛支持的方法,尽pipe还有其他(和Wiki最多)。
例如,对于apache2,存在一个mod-dnssd,它允许Apache使用Avahi通过多播DNS来宣布自己。
由于看起来他们将几乎总是在同一个networking上,难道你不能在“服务器”计算机上运行WINS并通过NetBIOS名称来连接吗?
这样你根本不用担心IP地址。
其实现在我想到了,你可能甚至不需要WINS,NetBIOS应该可以处理它。