2017-02-18 14 views
0

私はMySQLデータベースに格納されたIPアドレスを持っています。私はクエリを実行することを学んでいるので、共通のネットワークを共有するエントリが見つかるかどうかを知ることができました。これを行うために、IPv4から最後のグループの番号を削除して検索を「広げる」。IPv6をネットワークレベルに「広げる」方法は?

したがって、私はLIKEの検索を行い、IPアドレスはXXX.XX.XXX.となり、何が表示されるかを調べます。

私は2つの質問があります。

  1. は、私は愚かをやっていますか?同様に、私がやっていると思うものを達成することさえ、最後のグループを切り捨てますか?
  2. もしそうでなければ、IPv6の検索をどのように「広げる」でしょうか?

私はIPv6のグループについていくつかの調査をしましたが、私はまだそれぞれのグループが何をしているのか理解していません。確かに、私はIPv4の解剖学的知識だけしか持っていません。

これは本当に深刻な問題ではありませんが、このようなことに関する情報は見つけられませんでした。 ..

答えて

1

私は愚かなことをしていますか?同様に、私がやっていると思うものを達成することさえ、最後のグループを切り捨てますか?

最初に答えるには、「共通のネットワークを共有する」ということの何らかの定義が必要です。結局のところ、インターネット自体は、それに接続されたすべてのデバイスによって「共有」される「共通のネットワーク」です!

ネットワークエンジニア「ドメイン」の用語で話をする傾向がある:推測ではcollision domainsbroadcast domainsadministrative domains、など、あなたが管理ドメインの観点で考えるかもしれません。

a short time in historyの場合、最初の3オクテットがネットワーク番号を示すようにIPアドレス空間のチャンク(「クラスC」アドレスと呼ばれます)が割り当てられているため、最終オクテットを「トリミングオフ」しますIPアドレス空間の)はあなたが記述したとおりに正確に動作しています。

しかし、CIDRの導入以来、アドレスは任意の(2-exponent)ブロックサイズで割り当てることができ、アドレスだけから割り当てられたブロックのサイズを決定することはできません。さらに、ブロックは繰り返し細分化して再割り当てすることができます。

TL;あなたが何をしているとはっきりしていませんが、最後のグループを切り捨てると、おそらくそれを達成できません。

さて、あなただけ与えられたアドレスを使用すると、ビット単位で実行することにより、それとあなたネットワークマスクの間で行うことができますあなたネットワーク上にあるかどうかを確認したい場合は、その結果をアドレスとネットワークマスクのビット単位のANDと比較します。

それ以外では、外部データセットのアドレスのプロパティを参照する必要があります。

関連する問題