2017-02-18 2 views
0

У меня есть IP-адреса, хранящиеся в базе данных MySQL, и, поскольку я учусь запускать запросы, мне показалось, что я должен был увидеть, могу ли я найти записи, которые имеют общую сеть. Для этого я «расширяю» свой поиск, удаляя последнюю группу чисел из IPv4.Как «расширить» IPv6 на сетевой уровень?

Итак, я сделаю LIKE поиск IP-адреса XXX.XX.XXX. и посмотреть, что происходит.

У меня есть два вопроса:

  1. Это то, что я делаю глупость? Например, завершает ли последняя группа даже то, что я думаю, что я делаю?
  2. Если нет, как бы я «расширил» поиск IPv6?

Я провел некоторое исследование по группировкам IPv6, но, боюсь, я все еще не понимаю, что делает каждая группа. По общему признанию, у меня есть только поверхностное знание анатомии даже IPv4.

Опять же, это не очень серьезная проблема, но я не мог найти никакой информации о чем-то подобном (что и заставляет меня думать, что я даже не могу делать то, что, как я думаю, я делаю). ..

ответ

1

Является ли это тем, что я делаю глупо? Например, завершает ли последняя группа даже то, что я думаю, что я делаю?

Для ответа на это сначала требуется некоторое определение того, что означает «разделять общую сеть». В конце концов, сам Интернет является «общей сетью», которая «разделяется» каждым подключенным к ней устройством!

Сетевые инженеры имеют тенденцию говорить в терминах «домены»: collision domains, broadcast domains, administrative domains и т. Д. Возможно, вы думаете об административном домене.

Для a short time in history фрагмент пространства IP-адресов (известный как адреса класса C) был назначен таким образом, что первые три октета указывали номер сети и, следовательно, «отключение» окончательного октета (для этого фрагмента IP-адреса) ведут себя точно так же, как вы описываете.

Однако, начиная с введения CIDR, он больше не работает так: адреса теперь могут быть назначены в любом блоке (2-экспонента), и вы не можете определить размер выделенного блока только из адреса. Кроме того, блоки могут быть многократно разделены и перераспределены.

TL; DR-неясно, что вы думаете, что делаете, но в любом случае обрезка последней группы, вероятно, не достигает этого.

Теперь, если вы хотите, чтобы определить, является ли данный адрес на вашей сети вы можете сделать это, выполнив побитовое И между ним и вашей маски сети; затем сравнивая результат с поразным И вашим адресом и вашей сетевой сетью.

Помимо этого вам необходимо будет искать свойства адреса во внешних наборах данных ...

Смежные вопросы