2017-02-18 31 views
0

我的IP地址存儲在MySQL數據庫中,而且我正在學習運行查詢,我以前想過的是查看是否可以找到共享公用網絡的條目。爲此,我通過從IPv4中移除最後一組號碼來「拓寬」我的搜索範圍。如何「拓寬」IPv6到網絡級別?

因此,我會做一個LIKE搜索IP爲XXX.XX.XXX.,看看會發生什麼。

我有兩個問題:

  1. 是我在做什麼傻?比如,是否修整了最後一組,甚至實現了我認爲我在做的事情?
  2. 如果不是,我將如何「擴大」搜索IPv6?

我對IPv6的分組做了一些研究,但恐怕我還不瞭解每個分組的作用。無可否認,我對IPv4甚至IPv4的解剖結構只有粗略的瞭解。

同樣,這不是一個真正的嚴重問題,但我找不到任何關於這樣的信息(這導致我相信我甚至可能不會做我認爲我正在做的事)。 ..

回答

1

是我在做什麼愚蠢的?比如,是否修整了最後一組,甚至實現了我認爲我在做的事情?

要回答第一個問題,需要對「共享公共網絡」意味着什麼定義。畢竟,互聯網本身就是一個「通用網絡」,它被連接到它的每個設備「共享」!

網絡工程師傾向於使用「域名」進行交談:collision domains,broadcast domains,administrative domains等。猜測,您可能正在考慮管理域。

對於a short time in history,分配了一個IP地址空間塊(稱爲「C類」地址),使得前三個八比特組指示網絡號,因此「修剪」最後的八位字節(對於該塊的IP地址空間)的行爲與您所描述的完全相同。

但是,自從引入CIDR後,它不再像這樣工作:現在可以在任何(2指數)大小的塊中分配地址,並且無法單獨從地址確定分配塊的大小。此外,塊可以重複細分和重新分配。

TL; DR--目前尚不清楚您認爲自己在做什麼,但在任何情況下修剪掉最後一組可能都無法實現。

現在,如果你只是想確定一個給定的地址是否是網絡,你可以通過執行按位與它和網絡掩碼這樣做;然後將結果與您的地址的網絡掩碼按位與進行比較。

除此之外,您需要查找外部數據集中地址的屬性...