使用Ping命令,有時(shí)會(huì)出現(xiàn)一個(gè)奇怪的現(xiàn)象。Ping是Windows自帶的運(yùn)行于命令行程序,它是TCP/IP環(huán)境下用于檢測(cè)網(wǎng)絡(luò)連接性、可到達(dá)性和名稱解析的疑難問題的主要命令。Ping最主要的用處就是檢測(cè)目標(biāo)主機(jī)是不是可連通,其實(shí)質(zhì)就是發(fā)送一個(gè)ICMP回顯請(qǐng)求報(bào)文給目的主機(jī),并等待回顯的ICMP應(yīng)答,然后打印出回顯的報(bào)文。關(guān)于Ping命令的應(yīng)用不用本文詳細(xì)討論,在此指出一個(gè)不為人注意的細(xì)節(jié),提醒大家要特別注意。
在Windows2000/XP命令提示符狀態(tài)輸入ping 127.0.0.1回車,會(huì)出現(xiàn)回顯信息表示ping通了。有趣的是如果你輸入ping 127.0..1回車(注意不是127.0.0.1,中間少輸入一個(gè)0),同樣可以Ping通!Windows會(huì)自動(dòng)在IP地址中填充上一個(gè)“0”,組成127.0.0.1,如圖所示(圖1)。

在Windows98/Me下執(zhí)行這個(gè)命令也是同樣結(jié)果!換個(gè)方式,在命令行下輸入命令:ping 127..0.1,同樣可以Ping通,系統(tǒng)還是會(huì)自動(dòng)補(bǔ)充上一個(gè)“0”,變?yōu)橥暾男问健V詴?huì)這樣,是因?yàn)樵谑褂肞ing命令Ping某個(gè)IP地址時(shí),可以省略IP地址中的空值即為“0”的部分,而使用“..”這種格式可以在其中自動(dòng)加入空值,于是我們就可以省略其中的“0”了。
如果我們?cè)诿钚邢路謩e輸入Ping 202.108.36.172(這是網(wǎng)易的IP地址)和Ping 202.108.036.172,其回顯的結(jié)果會(huì)不會(huì)是一樣的呢?開始我以為是一樣的,然而命令執(zhí)行后的結(jié)果大大出乎我的意料——與我想像的完全不一樣。在輸入Ping 202.108.36.172回車后顯示的結(jié)果一切正常,和我們預(yù)想的完全一樣。而Ping 202.108.036.172時(shí)在命令提示符窗口中顯示的竟然是在Ping另外一個(gè)IP地址:202.108.30.172(圖2)!

更有趣地是,如果你輸入Ping 202.108.044.172回車,此時(shí)在命令提示符窗口中顯示的是我們?cè)赑ing地址202.108.36.172(圖3)!

這是不是也很出乎預(yù)料?除了Windows系統(tǒng)以外,在FreeBSD上測(cè)試的結(jié)果也是一樣的。
為什么會(huì)這樣呢?這是因?yàn)橄到y(tǒng)將上述IP地址中的“036”當(dāng)成八進(jìn)制而非十進(jìn)制數(shù)字了,八進(jìn)制數(shù)值“036”轉(zhuǎn)換為十進(jìn)制正好是“30”(你可以用Windows自帶的計(jì)算器來驗(yàn)算),所以系統(tǒng)才會(huì)以為我們要Ping的是202.108.30.172。在IP地址的十進(jìn)制數(shù)字前面加上0就表示這是八進(jìn)制數(shù),如果加上0x則表示這是十六進(jìn)制數(shù)值。我們可以驗(yàn)證一下,在命令提示符下輸入Ping 0x7f.0.0.1,回車之后你會(huì)發(fā)現(xiàn)我們Ping的是127.0.0.1。因?yàn)?x7f正是十進(jìn)制數(shù)值127的十六進(jìn)制表示方式。再試試輸入Ping 0x7f.0..1,猜猜看會(huì)怎么樣?沒錯(cuò),這樣輸入Ping的還是127.0.0.1這個(gè)IP地址。
注意,在使用Ping命令Ping某IP地址時(shí),在IP地址的四部分中只能有一部分可以采用八進(jìn)制或十六進(jìn)制才輸入,其余部分必須還得是十進(jìn)制數(shù)值,否則會(huì)出錯(cuò)。比方說,你要是將IP地址202.108.36.172轉(zhuǎn)為八進(jìn)制0312.0154.044.0254,然后去Ping,系統(tǒng)會(huì)報(bào)告錯(cuò)誤(圖4),同樣的,如果將點(diǎn)分十進(jìn)制IP地址的各個(gè)部分全部轉(zhuǎn)為十六進(jìn)制,然后去Ping系統(tǒng)也會(huì)報(bào)告出錯(cuò),無法Ping通。所以還是老老實(shí)實(shí)采用十進(jìn)制的IP地址去Ping的好。

以后大家在使用Ping命令時(shí)就要特別注意了,多一個(gè)“0”和少一個(gè)“0”有時(shí)是不一樣的。