Имея произвольный общедоступный IP-адрес, есть ли способ определить подсеть, к которой он принадлежит, без знания маски сети?
2 ответа
Краткий ответ - нет.
Лучшее, что вы можете сделать, - это сделать обоснованные предположения - насколько образованный зависит от того, насколько вы отчаянны и какими ресурсами вы располагаете.
Источники, чтобы сообщить предположение будут включать (но, вероятно, не ограничены)
- Подсказки от IP-адреса - по крайней мере в Новой Зеландии, исторически адреса были разбиты на диапазоны размеров (наименьший из которых - "класс C" из 256).
- О чем говорят таблицы маршрутизации BGP.
- Согласно сообщению @Zina - как реагирует шлюз и хост. Здесь есть ошибки, и в лучшем случае они ненадежны. Предположения о следующем переходе не всегда верны - хотя вы можете улучшить это, если сможете сделать дактилоскопию устройств и посмотреть, отвечает ли один и тот же маршрутизатор на несколько адресов и вывести подсеть из этого.
- Получая подсказки от сервисов, доступных с устройств за маршрутизатором в той же подсети, опять же, очень ненадежно, но, например, облачная служба может иметь несколько экземпляров одного и того же веб-сервера, настроенных одинаково, и его соседей - которые могут принадлежать другим арендаторам, будут иметь разные конфиги.
- Последний октет также говорит вам кое-что. Определенные значения, скорее всего, будут действовать "иначе", чем обычные адреса (широковещательный и сетевой), и это также может помочь сделать вывод.
Вы можете найти его с помощью traceroute. Найдите свой публичный шлюз с помощью traceroute www.google.com
. Теперь просто проследите предыдущий / следующий IP, начиная с общедоступной DG. Когда вы начнете видеть дополнительный прыжок, который покажет вам границы. Например. мой IP - xy96.112, и мой маршрутизатор показывает, что DG - 96.1. и я вижу то же самое с проверкой Google traceroute, IP-адресом локального маршрутизатора первого перехода, IP-адресом открытого шлюза следующего перехода. Таким образом, я знаю, что это, по крайней мере, сеть / 25 (Первый IP -> 1 - мой публичный IP -> 112 - имеется в виду, по крайней мере, сеть с 126 хостами). С помощью traceroute я вижу дополнительный переход на xy95.254 (поэтому DG на 96.1 - первый IP-адрес в сети) и дополнительный переход на xy98.1 - поэтому я предполагаю, что это сеть / 22. Конечно, это работает, только если вы получили ответ с IP-адресом из прыжков.