Проблема вот в чём. Пусть есть MAC адрес отправителя и получателя, а так же payload, т.е. можно однозначно составить Ethernet frame. А также есть название интерфейса, через который нужно отправить данный frame. Как это сделать (т.е. сформировать Ethernet frame и отправить его) под BSD в котором нет реализации сокета socket(PF_PACKET, SOCK_RAW, ...)?
Буду благодарен за любые советы!
> Проблема вот в чём. Пусть есть MAC адрес отправителя и получателя,
>а так же payload, т.е. можно однозначно составить Ethernet frame. А
>также есть название интерфейса, через который нужно отправить данный frame. Как
>это сделать (т.е. сформировать Ethernet frame и отправить его) под
>BSD в котором нет реализации сокета socket(PF_PACKET, SOCK_RAW, ...)?
> Буду благодарен за любые советы!
Ну у socket есть PF_LINK (правда описания что означает не видел я нигде). А так сразу приходит на ум bpf. Правда там писать можно только один пакет за раз и только Ethernet или slip.
Спасибо большое! Кажется, bpf решает то, что мне нужно. Но PF_LINK меня заинтриговал...=)
> Проблема вот в чём. Пусть есть MAC адрес отправителя и получателя,
>а так же payload, т.е. можно однозначно составить Ethernet frame. А
>также есть название интерфейса, через который нужно отправить данный frame. Как
>это сделать (т.е. сформировать Ethernet frame и отправить его) под
>BSD в котором нет реализации сокета socket(PF_PACKET, SOCK_RAW, ...)?
> Буду благодарен за любые советы!я такое проделывал сам из нетграф модулей
Большое спасибо! Уже изучаю=)
>> Проблема вот в чём. Пусть есть MAC адрес отправителя и получателя,
>>а так же payload, т.е. можно однозначно составить Ethernet frame. А
>>также есть название интерфейса, через который нужно отправить данный frame. Как
>>это сделать (т.е. сформировать Ethernet frame и отправить его) под
>>BSD в котором нет реализации сокета socket(PF_PACKET, SOCK_RAW, ...)?
>> Буду благодарен за любые советы!
>
>я такое проделывал сам из нетграф модулей
--есть утилита tcpreplay - ей можно отправлять любые готовые пакеты через заданный интерфейс
Попробуйте эту библиотекуhttp://www.packetfactory.net/libnet/
>Попробуйте эту библиотеку
>
>http://www.packetfactory.net/libnet/Функция из этой библиотеки которая вам пригодится
libnet_ptag_t
libnet_build_ethernet(u_int8_t *dst, u_int8_t *src, u_int16_t type, u_int8_t *payload,
u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
Премного благодарен, уважаемый!
>Премного благодарен, уважаемый!
автор
если есть эта прога которая работает через bpf и без сторонних библиотек
пришли плиз на мыло rtk0()()()()mail.ru