2015-03-04 2 views
1

Я установил связь udp-server и udp-client через пограничный маршрутизатор. Он способен общаться от клиента к серверу.Как получить информацию о пакете в узле пограничного маршрутизатора?

У меня есть трудности с получением информации о пакете, такой как ... исходный IP-адрес, IP-адрес назначения на пограничном маршрутизаторе? Я могу получить его на узле сервера, но как получить то же самое в узле пограничного маршрутизатора?

ответ

1

При получении маршрутизатором пакет направляется функцией tcpip_ipv6_output в файл tcpip.c. Вы можете активировать PRINTF этого файла, установив макрос DEBUG на DEBUG_PRINT.

При этой функции вы можете получить исходные адреса & с адресами UIP_IP_BUF->destipaddr и UIP_IP_BUF->srcipaddr. Проверьте, например, когда маршрут в пункт назначения просматривается в таблице маршрутизации:

uip_ds6_route_t *route; 
/* Check if we have a route to the destination address. */ 
route = uip_ds6_route_lookup(&UIP_IP_BUF->destipaddr); 
+0

спасибо за помощь. Есть ли способ отправить или запросить данные (temp) из linux, чтобы подключить их с пограничным маршрутизатором или использовать scapy как инструменты send packet .. – sagar

+0

Если я хочу удалить пакет на маршрутизаторе, то что делать .. Я создал один черный список ip addr – sagar

+0

@sagar: Я вижу два решения, чтобы иметь возможность черного списка IP. Либо удалите его адрес из таблицы маршрутизации (см. 'Uip_ds6_route_rm'), это может быть проблематично, если IP-адрес соответствует большому префиксу в вашей таблице маршрутизации. Или измените исходный код функции tcpip_ipv6_output, проверив его, если IP-адрес назначения находится в черном списке, и если это так, просто «верните» из этой функции. – ryolait