查詢IP協議地址的有效方法
對于Linux系統下的TCP IP協議的地址查詢命令我們已經在前面的文章中介紹過了。現在接著前文,我們來繼續講解一下相關內容。在查詢到地址之后,我們就必須有一套方法來對應 IP協議地址和實體地址了。
在此一過程中﹐關鍵點是如果將 IP協議地址對與實體地址做對應。有些使用簡單實體地址的網路(如 proNET-10 )﹐其實體地址只占一個 byte 的長度﹐而且允許使用者在配置網路卡的是選擇自己的實體地址。
在這樣的網路上進行 IP協議地址和實體地址的對應﹐是比較簡單的﹐我們可以把實體地址設為和 IP協議地址設為一樣。例如﹐假設某一個節點的 IP協議地址為 192.168.1.17﹐那么我們可以將該實體地址設為 17。
這樣﹐在 proNET 就可以輕易的根據 IP協議地址來得到實體地址。這樣的對應非常簡單﹐而且要維護起來也很容易﹐在新機器假如網路的時候﹐并不需要修改或重編已存的資料。
然而﹐我們知道在乙太網上﹐每一個實體界面都有一個 48bit(6byte) 的 MAC 地址﹐而 IP (v4)使用的地址則為 32bit(4byte)﹔每各地址格式都只提供相應的層級協定使用﹐彼此是不能互換使用的。這時候我們就無法用簡單的數學關系來做 IP協議地址和實體地址的對應了。
IP協議地址和實體地址的對應方法
建立表格
首先﹐我們想到的最簡單方法是在每一臺機器上建立一個 IP協議地址和實體地址的對應表格( table )。不過這個方法還是沒辦法解決如下的情形:
◆ 網路上的節點數量多如恒河沙數﹐要想將全部節點的對應關系列入表格之中幾近不可能任務。
◆ 如果某一個節點產生異動情形(例如更換網卡)﹐那么如果讓所有表格正確做出相應修改﹐也是個頭痛的問題。
◆ 對某無磁碟工作站來說﹐因為沒有本機的儲存設備﹐將無非建立表格。
寫入高階程式
除了建立表格﹐我們還可以將實際的網路地址寫死在高階網路程式里面。不過﹐和前一個方法一樣﹐如果遇到硬體地址變更等異動動情形﹐那么﹐程式也需要重新編譯過才行。
顯然﹐上述兩個方法都不怎么高明。