![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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?