域内,windows的机器可以通过 ping直接获得IP地址。
比如,ping computerA 可以得到机器名为computerA的IP地址。
linux机器如果在域内动态分配IP地址,那么,如何根据其主机名,取得其IP地址呢?
一般情况下,配好了 hostname为xxx.test.com 的机器是自然可以这样得到IP地址的。
但如果不行的话,就有两种方案:
A. 通过nsupdate来使域内的DNS服务器更新自己的IP。
$ nsupdate
> update add xxx.test.com 9999 A 192.168.1.20
>
>quit
B. 注册自己在 WINS服务器上的名字。
这一项还没有找到现成程序,可能要自己编程解决。也许有吧,谁知道的留 言告诉我。
编程不麻烦,假设linux的IP是192.168.1.4 ,找一台windows,设IP为192.168.1.10
在linux上面运行命令
tcpdump -X -s 300 “src host 192.168.1.10”
然后在 win上,把wins服务器设为 192.168.1.4
这样,win就会去linux注册自己,看到相应的二进制包,仿照着就可以开始开发了。
当然要开发,光有二进制包还不行,可以参照着 rfc1002 先把包弄懂。rfc1001也可先看看。
弄懂后,写个程序就易于反掌了!
顺便说一下,在dns上注册名字后,windows 可能还不能马上ping到,ping会报告找不到名字。这是因为windows有缓存。可以用下面这条命令手动清掉windows的DNS缓存(DNS Cache)。
ipconfig /flushdns