06:50

Неизвестный смайлик.
Здравствуйте. У меня тут возникла надобность сделать трассировку по определенному порту, для того чтобы узнать, где этот самый порт закрыт - по пути до конечного места или собственно уже на конечном месте.

Так вот, как это сделать на Windows машине? Поиск мне дал программы: Hping и tracetcp, однако первая почему-то не принимает флаг "-V" который, собственно, и должен показать схему маршрута трассировки, а вторая даже с установленным winpcap не работает на версии выше sp2 (у меня sp3).

Есть еще какие-нибудь варианты/программы?

Комментарии
02.05.2010 в 09:18

вообще говоря я не представляю как можно это сделать, особенно если фильтр пакеты дропает.
02.05.2010 в 09:52

Прежде чем испробовать достичь цели - я хочу запомнить этот мир целым ©
Бред какой то. Проверка открытости порта производится телнетом. И если тот же яндекс у вас замечательно зателнетится по 80 порту, то шлюз, стоящий в 1.5 километрах от вас очень наврядли. Открытость/закрытость портов на промежуточных узлах не имеет никакого значения для открытости/закрытости портов на конечном хосте. Вопрос в то что пакеты (любые пакеты, адресованые на любые порты) могут не доходить в принципе до конечного хоста, здесь обрыв можно посмотреть tracert`ом или pathping`ом.
02.05.2010 в 11:09

узнать, где этот самый порт закрыт - по пути до конечного места или собственно уже на конечном месте

Проще всего проверить с другого хоста или через прокси. На первый взгляд технического способа посмотреть это со своего хоста не вижу — "порт" это понятие TCP, он вообще не используется на уровне IP (при маршрутизации). С другой стороны, ответ ICMP "Time Exceeded" должен отсылаться маршрутизатором в любом случае окончания TTL, а не только в ответ на ICMP Echo.
02.05.2010 в 12:00

Неизвестный смайлик.
Сэр Дьявол Погодите. Если я на тот же яндекс стукнусь на 4444 порт, к примеру, то через все маршрутизаторы по пути он пройдет как попало и только в конечном устройстве стукнется в 4444 порт? Если это так, то тогда вопрос снимается, я то думал, что если уж указан порт, то запрос будет идти по всем маршрутизаторам именно через него.

Если же я все-таки прав, то ситуация такая: последние три-четыре-пять (не помню точно сколько) устройств до адресата статичны. Т.е. они будут всегда и все время одинаковыми и сигнал будет идти именно через них. Известно, что адресат на конкретный порт не реагирует. Вопрос - дурак адресат или дурак находится среди этих последних устройств (банально, провайдер блокирует доступ по 125 порту или нет)?
С другого хоста или через прокси не прокатит, поскольку последние устройства все равно будут теми же. Проверить конкретно одно конечное устройство, возможности нет.
02.05.2010 в 12:12

Погодите. Если я на тот же яндекс стукнусь на 4444 порт, к примеру, то через все маршрутизаторы по пути он пройдет как попало и только в конечном устройстве стукнется в 4444 порт? Если это так, то тогда вопрос снимается, я то думал, что если уж указан порт, то запрос будет идти по всем маршрутизаторам именно через него.

Да блин. "Порт" — это понятие TCP. Когда пакет проходит через маршрутизаторы, им вообще пофиг, что там написано в TCP заголовке, они смотрят на IP. То есть пакеты не идут "через порт", порт — это просто число в заголовке пакета. Другое дело, что админ может специально настроить фильтр типа "дропать все пакеты, где в TCP заголовке в порте назначения написано 4444"
02.05.2010 в 12:28

провайдер блокирует доступ по 125 порту или нет

имеется в виду интернет-провайдер? если да, тогда при чём тут узлы в конце маршрута, они ж к провайдеру не относятся?
02.05.2010 в 15:03

Неизвестный смайлик.
Enkryptor Ну значит все равно могут быть блокированы, пусть и по другим идеологическим предпосылкам, верно?

Провайдера я чисто как пример привел. В общем, судя по реакции, никаких подобных программ нет?
02.05.2010 в 15:07

Я не говорил о том, есть ли "программы" или нет. Я говорил вообще о потенциальной возможности получить такую информацию.

Можно попробовать отправить "запрещённый" пакет с ограниченными TTL и посмотреть, возвращается ли ICMP 11. Посмотреть под виндой можно, например, с помощью Wireshark. Отправить — не знаю чем, не возникало у меня такой необходимости.

Можешь, всё таки озвучишь, что за тайный адресат и что за порт? Чтобы экспериментировать предметно.