【文章內(nèi)容簡(jiǎn)介】
實(shí)上 Windows 本身就用 ARP 來確定自己的 IP 地址是否與網(wǎng)絡(luò)上的另一臺(tái)計(jì)算機(jī)發(fā)生了沖突。當(dāng)一個(gè)ARP包到來時(shí), Windows 如果檢查到其中的 IP 地址與本機(jī)上的相同,而物理地址不同,這時(shí) Windows 就會(huì)向用戶報(bào)告這個(gè) IP 地址已經(jīng)被別人占用。非常有意思的時(shí), Windows 對(duì)待 IP 地址是以先來后到的順序分配,如果已經(jīng)有人先占了,那么本機(jī)的網(wǎng)絡(luò)接口就會(huì)被禁用。這也是非常惱人的“特色”因?yàn)橐坏╅_機(jī)后有了第一次沖突,以后的任何網(wǎng)絡(luò)操作就都無效了。 Windows XP 有了一定的進(jìn)步,它在發(fā)現(xiàn)沖突以后并不禁用接口,而是允許用戶進(jìn)行修復(fù)。其實(shí)用 sniffer 可以看到所謂的“修復(fù)”也不過是發(fā)了幾個(gè) ARP包出去,把 IP“搶”回來。 在以前的文章中我描述了一個(gè)用 ICMP 回送請(qǐng)求(類似 PING)進(jìn)行 IP 查找的程序。這個(gè)程序用并發(fā)的幾十個(gè)線程同時(shí) PING網(wǎng)絡(luò)上的多臺(tái)計(jì)算機(jī)