Наиболее распространенный метод обнаружения топологии в IP-сетях - это отправка пакетов (например, ICPM ECHO REQUEST
) на адреса назначения с очень маленькими значениями TTL . Обычно последний действительный узел, к которому вы обращаетесь с данной DLL, затем отправляет сообщение об ошибке ICMP, сообщающее, что пакет был потерян из-за истечения срока его службы, и, таким образом, раскрывающий IP-адрес указанного устройства.
Ответ на этот вопрос предполагает, что Java Socket API может устанавливать TTL только для многоадресных сокетов. Чтобы обойти это, вы можете попробовать работать с необработанными IP-сокетами, используя стороннюю библиотеку, такую как RockSaw , поскольку в JDK нет поддержки необработанных IP-адресов (ошибка в трекере SUN с 2002 года (!) с просьбой закрыть его "Не исправлю").