Как бы вы исследовали первые несколько портов на TCP/UDP, чтобы увидеть, что хост жив, как Angryipscanner, но только на ipv6?Слишком ли живы хосты без ICMPv6?Я на Windows.
1 ответ
Технически говоря, хост может быть "живым" (определить живым?) без ответа на запросы проверки связи ICMP. Например, вы можете блокировать трафик ICMPv4 и ICMPv6 в брандмауэре (выборочно, все еще позволяя такие важные вещи, как обнаружение PMTU), без каких-либо неблагоприятных последствий.
То же самое с попытками TCP-соединения. Если вы пытаетесь подключиться к произвольному порту, вы можете получить 3 разных результата:
Соединение успешно. Хост жив.
В соединении отказано. Хост жив.
Время соединения истекло. Хост либо находится в автономном режиме, либо блокирует попытки подключения к этому порту, либо подключение не удалось из-за какой-либо другой проблемы с сетью.
Как вы можете различить 3 разных варианта в # 3?
Способ "пинговать" через TCP или UDP
Вы можете "заставить" traceroute выполнить "пинг" через TCP или UDP:
traceroute -6 -f 30 -T ipv6.google.com
трассировка до ipv6.google.com (2001:4860:8005::69), максимум 30 прыжков, 80-байтовые пакеты
30 pz-in-x69.1e100.net (2001:4860:8005::69) 87,299 мс 87,257 мс 87,208 мс
Тот же запрос, только через UDP, потерпит неудачу:
traceroute -6 -f 30 -U ipv6.google.com
трассировка до ipv6.google.com (2001:4860:8005::63), максимум 30 прыжков, 80-байтовые пакеты
30 * * *
Вам нужно будет только передать результаты в grep, если вам это нужно в скрипте.