Мне нужно написать скрипт trceroute, но я не уверен, что мои попытки верны.Написание базового сценария traceroute в C
Прямо сейчас я делаю это так (пожалуйста, поправьте меня, если я делаю неправильно или неуклюжим):
- Получил-структуру для IP- и udpheader
- Функции Контрольной
- Открытие 2 сокетов: один для отправки UDP-пакетов в режиме SOCK_RAW (для управления ttl) и один для приема ICMP-ответов от маршрутизаторов.
- Используя SendTo() для отправки UDP пакета
- Не имея ни малейшего понятия, как получить и обработать ответ ICMP
есть ли более удобные способы изменить TTL, чем при использовании SOCK_RAW, где я должен определить все заголовок для себя? Какие параметры следует использовать для socket() при открытии носки ICMP? Как получить ответ ICMP?
Спасибо за ваш ответ. Это привело меня в бегство вперед. –