Вам необходимо root (или эквивалентные возможности), чтобы открыть необработанный сокет и прочитать произвольные сетевые пакеты, не связанные с вашим подключением. Однако можно получить полезную информацию из ответа об ошибке ICMP через сокет UDP, как состояние ошибки, интерпретируемое ядром. Я не совсем понимаю, как работают интерфейсы для этой работы, но вы можете найти некоторую информацию, начиная со справочной страницы udp (7) .