|
Модераторы: feodorv |
|
Alexey68 |
|
||||
Alexey Профиль Группа: Участник Сообщений: 98 Регистрация: 10.4.2013 Репутация: нет Всего: нет |
Здравствуйте!
При попытке пинга роутера, ответ приходит, но с внешнего узла ответа нет. В чём может быть причина? Структуры:
........................
Прошу Вашей помощи. |
||||
|
|||||
feodorv |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 10 Всего: 45 |
Внешний узел пингуется утилитой ping? Добавлено через 6 минут и 36 секунд
Здесь должен быть mac-адрес внешнего узла (соответствующий IP-адресу ip_dest), не роутера. А как у Вас? -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
Alexey68 |
|
|||
Alexey Профиль Группа: Участник Сообщений: 98 Регистрация: 10.4.2013 Репутация: нет Всего: нет |
да
у меня mac роутера. При просмотре пакета в Microsoft Network Monitor 3.4 (использовал стандартный ping) в заголовке ethernet header присутствует именно mac моей сетевой карты и mac роутера. Это сообщение отредактировал(а) Alexey68 - 2.12.2015, 22:11 |
|||
|
||||
feodorv |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 10 Всего: 45 |
Ну да, правильно, я глупость написал. Внешний узел на то и внешний, что с ним работаем через роутер. А Вы тогда не могли бы сравнить пакеты (по заголовкам), генерируемые Вашей программой и программой ping. -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
feodorv |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 10 Всего: 45 |
Пришлось покопаться в коде.
Насколько я понимаю, контрольная сумма в ICMP пакете касается всего сообщения ICMP (то есть включая данные), а не исключительно заголовка ICMP. Это сообщение отредактировал(а) feodorv - 3.12.2015, 06:58 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
Alexey68 |
|
||||||
Alexey Профиль Группа: Участник Сообщений: 98 Регистрация: 10.4.2013 Репутация: нет Всего: нет |
Всё "один в один" кроме контр. суммы.
Изначально так и делал:
но ответа от хоста так и нет... Это сообщение отредактировал(а) Alexey68 - 3.12.2015, 14:02 Присоединённый файл ( Кол-во скачиваний: 1 ) packets.rar 0,51 Kb |
||||||
|
|||||||
feodorv |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 10 Всего: 45 |
Так у Вас данные и заголовок находятся в разных местах памяти. Заглядывать за пределы ping_header - значит выйти за пределы массива байт, отведённых для ping_header. И хотя память за пределами ping_header доступна на чтение (если нет, то Ваша программа просто завершилась бы с криком об ошибке), но там находится мусор. ЦРЦ мусора не очень годится... Почему бы весь пакет сразу не оформить единым массивом байт:
Это сообщение отредактировал(а) feodorv - 3.12.2015, 17:24 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
Alexey68 |
|
|||
Alexey Профиль Группа: Участник Сообщений: 98 Регистрация: 10.4.2013 Репутация: нет Всего: нет |
feodorv, благодарю за помощь!
|
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |