Как вы уже обнаружили, UDP не использует соединения, поэтому ОС не отслеживает информацию об удаленной стороне, как это делается для TCP.В отличие от сокета TCP, сокет UDP может одновременно обмениваться данными с несколькими удаленными сторонами, где sendto()
указывает ip / порт назначения, а recvfrom()
сообщает ip / порт отправителя.
IЯ понимаю, почему IP Helper не может выполнить эту работу (udp не имеет соединения и ему нужно захватывать пакеты), но я не нашел ничего конкретного, как это сделать.
Вам нужно использовать библиотеку захвата пакетов, такую как libpcap и вручную отслеживайте количество ips / портов исходящих пакетов, которые вы видите.