Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | | |
Тока ещё св-во установи сокету если тебя интересуют не только "свои" пакеты 02.10.02 17:02 Число просмотров: 1181
Автор: Access Статус: Незарегистрированный пользователь
|
Вот кусок:
int openintf(char *d)
{
int fd;
struct ifreq ifr;
int s;
fd=socket(AF_INET, SOCK_PACKET, htons(0x800));
if(fd < 0)
{
perror("cant get SOCK_PACKET socket");
exit(0);
}
strcpy(ifr.ifr_name, d);
s=ioctl(fd,SIOCSIFFLAGS, &ifr);
if(s < 0)
{
close(fd);
perror("cant get flags");
exit(0);
}
ifr.ifr_flags |= IFF_PROMISC;
s=ioctl(fd,SIOCSIFFLAGS, &ifr);
if(s < 0) perror("cant set promiscuous mode");
return fd;
}
Если надо , вошлю полностью. Намыль accesss@yandex.ru
|
<programming>
|
[Unix] Прехват пакетов через конкретный (ые) интерфейсы... 27.09.02 13:49
Автор: navigator Статус: Незарегистрированный пользователь
|
Подскажите кто-нибудь как на С в линухе перехватывать пакеты проходящие через конкретный интерфейс (ы) , может у коро есть примерчик, если нет то может кто хотяб теоретическим алгоритмиком поделится.
Был бы очень благодарен...
|
| |
А чем тебе исходники tcpdump не нравятся ? (внутри только ссылка ! ) 28.09.02 09:33
Автор: navigator Статус: Незарегистрированный пользователь Отредактировано 28.09.02 09:42 Количество правок: 1
|
не, ну это само сосбой понятно, что можно взять и покопать, просто хотелосьбы чтоб просто алгоритмик подсказали как это делается.......
И еще интересно, как перехватить все пакеты который проходят через конкретный интерфейс (например гейта )....
|
| | |
[Unix] Ну вообще то кошерное решение в данном случае это TUN/TAP 01.10.02 14:47
Автор: XR <eXtremal Research> Статус: The Elderman
|
|
| |
Я тоже везде примеры искал, тока небыло. Посмотрел в исходники и всё понял :)) 27.09.02 16:38
Автор: Access Статус: Незарегистрированный пользователь
|
Можешь глянуть ещё на www.opennet.ru
в поиске набери "фреймы"
|
| | |
параметр type в финции socket 30.09.02 18:44
Автор: FreeHermit Статус: Незарегистрированный пользователь
|
Это делается просто: есть функция
int socket (int domain, int type, int protocol)
создаешь сокет с параметрами:
domain = AF_INET
type = SOCK_PACKET (для этого нужно иметь права суперпользователя)
protocol = 0
и потом работаешь с ним как с простым сокетом...
|
| | | |
Тока ещё св-во установи сокету если тебя интересуют не только "свои" пакеты 02.10.02 17:02
Автор: Access Статус: Незарегистрированный пользователь
|
Вот кусок:
int openintf(char *d)
{
int fd;
struct ifreq ifr;
int s;
fd=socket(AF_INET, SOCK_PACKET, htons(0x800));
if(fd < 0)
{
perror("cant get SOCK_PACKET socket");
exit(0);
}
strcpy(ifr.ifr_name, d);
s=ioctl(fd,SIOCSIFFLAGS, &ifr);
if(s < 0)
{
close(fd);
perror("cant get flags");
exit(0);
}
ifr.ifr_flags |= IFF_PROMISC;
s=ioctl(fd,SIOCSIFFLAGS, &ifr);
if(s < 0) perror("cant set promiscuous mode");
return fd;
}
Если надо , вошлю полностью. Намыль accesss@yandex.ru
|
| | | | |
перехват пакетов через конкретный интерфейс (eth0) 09.10.02 11:00
Автор: navigator Статус: Незарегистрированный пользователь
|
Понятно, создал сокет получаю через него пакеты, но как этот сокет связать с конкретным интерфейсом, чтоб не ловить какие-попало пакеты а именно идущие через него.
|
|
|