s.setsockopt(socket.IPPROTO_IP, socket.IP_TTL, 1) s.connect((host, port))
Назначаем пакету ttl=1 и пробуем соединиться — в ответ, логично, приходит "No route to host" (113). Вопрос, как получить информацию о промежуточном хосте (ip), откинувшем пакет (код на питоне, но если скажете реализацию на си тоже буду рад).