Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

UDP перехватчик [D6, WinXP]


Сергей Колесник ©   (2007-06-06 10:48:00) 

Немного поюзал поиск, ответа не нашёл, пишу сюды.

делаю простенький udp перехватчик, работает так:
1) ловит udp пакет отправленный на 255
2) забирает его содержимое (библиотечка Packet Sniffer SDK VCL Edition )
3) отправляет свой пакет с тем же содержимым но на фиксированный адрес и порт вот таким способом

 WSAStartup($202,init);
 Sock:=Socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP);
 SockOpt:=TRUE;
 SetSockOpt(Sock,SOL_SOCKET,SO_BROADCAST, PChar(@SockOpt),SizeOf(SockOpt)) ;
 Target.sin_port:=57367; //номер порта htons(6112);
 Target.sin_addr.S_addr:=inet_addr('1.1.1.1');
 Target.sa_family:=AF_INET;
 SendTo(Sock, BData,3,0,Target,SizeOf(Target));
 WSACleanup;

или же через инди удипи клиента (предварительно настроен конечно)

 udp.SendBuffer( bdata,3);

результат получается, если верить дамперу, один.

Проблема:
порт источник в новом пакете менятеся на произвольный, а мне нужен такой же как и в необработанном, совпадающий с портом адресатом.


Сергей Колесник   (2007-06-06 14:15:00) [1]

Пасиб, забиндил.


SlymRO   (2007-06-06 11:28:00) [2]

Если отсыл не от своего адреса и порта, то только RAW пакетом


Сергей М.   (2007-06-06 10:55:00) [3]


> порт источник в новом пакете менятеся на произвольный


Ф-ция bind() позволяет указать требуемый порт


Сергей Колесник   (2007-06-06 10:52:00) [4]

Забыл добавить, может ктонибудь подскажет где найти компонент (или же прогу) аналогичный IdMappedPortTCP, но только для UDP?


Наверх

Титульная страница Поиск, карта сайта Написать письмо