|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Alexander Zinin 2:5020/400 01 Nov 2003 21:53:44 To : Eugene Grosbein Subject : Re: biling & ipfw --------------------------------------------------------------------------------
Я лучше свой напишу.
Я не пойму, когда ко мне на мой RAW_SOCKET IPPRORO_DIVERT по порту, который
я указал в ipfw add divert приходят пакеты, я их получаю при помощи
recvfrom, чтобы всё продолжало работать, что с ними надо делать дальше ?
Пробывал их sendto с теме данными, которые получил по recvfrom что-то стало
работать, а что-то нет.
ipfw.conf:
ipfw add 100 divert 10000 ip from any to any via sk0
ipfw add 200 allow all from any to any
вот кусок кода:
int main_sock;
ssize_t bytes;
char buf[bufsize];
struct sockaddr_in sin_serv;
struct sockaddr_in sin_from;
socklen_t sizeofsin;
main_sock = socket(PF_INET, SOCK_RAW, IPPROTO_DIVERT);
if(main_sock == -1) print_error(true);
bzero(&sin_serv, sizeof(sin_serv));
sin_serv.sin_family = AF_INET;
sin_serv.sin_port = htons(SERVER_PORT);
if(bind(main_sock, (sockaddr*)&sin_serv, sizeof(sin_serv)) == -1)
print_error(true);
do {
bytes = recvfrom(main_sock, buf, bufsize, 0, (sockaddr*)&sin_from,
&sizeofsin);
sendto(main_sock, buf, bytes, 0, (sockaddr*)&sin_from, sizeofsin);
std::cout << "size = " << bytes << "\n";
std::cout.flush();
} while(bytes != -1);
Eugene Grosbein wrote:
> 01 ноя 2003, суббота, в 17:07 KRAST, Alexander Zinin написал(а):
>
> AZ> Hужна сама идея, как это делается
>
> Ставится ipacctd из портов, перед allow ip from any to any
> вставляется дополнительное правило divert 10000, которое скармливает
> весь трафик демону. Он его считает и текстовую табличку по запросу отдает.
> Дальше с ней делаешь, что хочешь.
>
> Eugene
--- ifmail v.2.15dev5
* Origin: GSP (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/65900b75e314.html, оценка из 5, голосов 10
|