黑客系列知識之不要小看了ping命令

2021-04-12 15:29:09 字數 1354 閱讀 5415

ping命令,大家都比較熟悉,它常被用來測試區域網的連通狀態。「ping+ip位址」是大家最常用的一種命令格式,但大家是否注意過ping命令中的ip位址呢?這裡面可是有很多學問和講究的,下面筆者就為大家介紹一下隱藏在ping命令中的這些秘密。

「.0」可以有條件省略

大家常用「ping 127.0.0.1」命令在本機上做迴路測試,用來驗證本機的tcp/ip協議簇是否被正確安裝。但你發現了嗎?使用「ping 127.1」這個命令也能得到同樣的測試結果(如圖),其實「ping 127.1」和「ping 127.0.0.1」這兩條命令是一樣的,都是在進行迴路測試。

為什麼會這樣呢?這就是ping命令應用中ip位址的使用技巧。大家都知道,ip位址由32位二進位制數字組成,為了方便大家記憶,將每8位二進位制數字換算成十進位制數字,因此就形成了容易記憶的由四部分十進位制數字組成的ip位址(如127.0.0.1)。由於,

windows

作業系統

具有自動填充 「.0」的功能,因此我就可將「127.0.0.1」變為「127.1」。

但是,這個「.0」的省略是有條件限制的,並不能任意省略。在ping命令的應用中,只能將在ip位址的最後一部分十進位制數字前出現的乙個或多個「.0」省略,如把「ping 127.0.0.1」命令改寫成「ping 127.1」。

如果這乙個或多個 「.0」沒有緊挨著最後一部分的十進位制數字,而是在其他位置,則這個「.0」不能省略,如「ping 202.0.96.1」就不能寫成「ping 202.96.1」。這是因為「ping 202.96.1」返回的結果是「202.96.0.1」的應答資訊,而不是「202.0.96.1」的應答資訊。

數字串代替ip位址

在ping命令中,還可以使用數字串代替ip位址,你相信嗎?執行「ping 3658906394」命令,你會看到「218.22.123.26」這個ip位址的返回資訊。

為什麼會這樣呢?其實,「3658906394」就是ip位址「218.22.123.26」的另一種表示形式。當然,也可按同樣的方法ping其他的ip位址。

字串是如何轉換而來的呢?其實並不複雜,以「218.22.123.26」這個ip位址為例,ip位址轉換成數字串方法如下:先將 「218.22.123.26」轉換為十六進製制「da.16.7b.1a」,然後去掉小數點後,變為「da167b1a」,最後將這個十六進製制數轉換為十進位制「3658906394」,那麼「218.22.123.26」就變為「3658906394」了。其他ip位址轉換為數字串也是使用同樣的方法。

因此,掌握了上述技巧後,

網管在進行網路測試或維護時,可以熟練運用「省略」方式,減輕ping命令的字元輸入量,提高工作效率。同時,使用數字串代替ip位址也可迷惑好奇心強的普通使用者,以免他們胡亂設定。 

C 基礎知識系列之 for迴圈

c 的for迴圈提供的迭代迴圈機制是在執行下一次迭代前,測試是否滿足某個條件,其語法如下 for initializer,condition,iterator statement s 其中 initializer是指在執行第一次迭代前要計算的表示式 通常把乙個區域性變數初始化為迴圈計數器 condi...

MySQL系列之索引知識學習筆記

繼我的上篇部落格 oracle索引知識學習筆記,再記錄一篇mysql的索引知識學習筆記,本部落格是我在學習尚矽谷的學習教程後,做的筆記,當然我不是為了所謂宣傳,僅僅是學習記錄的筆記。本來可以不分享出來,不過,分享出來的筆記不僅可以給網上的學習者參考學習,同時寫在csdn比較方便,可以支援上傳,也方便...

redis系列(三)之基礎知識

redis 是很快的,官方表示,redis是基於記憶體操作,cpu不是redis效能瓶頸,redis的瓶頸是根據機器的記憶體和網路頻寬,既然可以使用單執行緒來實現,就使用單執行緒了!所有就使用了單執行緒了!redis 是c 語言寫的,官方提供的資料為 100000 的qps 完全不比同樣是使用 ke...