The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"ipfirewall (ip_fw.h) КАК ЕЕ ЮЗАТЬ????"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"ipfirewall (ip_fw.h) КАК ЕЕ ЮЗАТЬ????"
Сообщение от aTz emailИскать по авторуВ закладки on 08-Окт-00, 23:48  (MSK)
Ребят, вот исходник. Скажи, ну че я тут неправильно делаю??? Правило такое есть, пускаю под рутом, почему ниче не выдает-то??

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip_fw.h>
#include <memory.h>

main()
{
  int sock, nb;
  struct ip_fw rule;
  sock = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);

  memset(&rule, 0, sizeof rule);

  rule.fw_number = 200;
  setsockopt(sock, IPPROTO_IP, IP_FW_GET, &rule, &nb);
  printf("%d",rule.fw_bcnt);
}

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: ipfirewall (ip_fw.h) КАК ЕЕ ЮЗАТЬ????"
Сообщение от ZyXEL emailИскать по авторуВ закладки on 09-Окт-00, 21:49  (MSK)
Ты бы для начала сказал что сделать хочешь.
Вообще-то оно конфигурится через ipfw. При загрузке - /etc/rc.firewall (во фрюхе).
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: ipfirewall (ip_fw.h) КАК ЕЕ ЮЗАТЬ????"
Сообщение от aTz emailИскать по авторуВ закладки on 10-Окт-00, 03:25  (MSK)
я имел ввиду как на Си считывать правила файрволла, ну т.е. не через popen() юзая программку ipfw, а через сокет, пользуясь #include <ip_fw.h>, разобрался я кстати :), если
кому интересно вот код для считывания всех правил и вывода информации о байтах на на них набежавших, остальное в ipfirewall(4):
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip_fw.h>
#include <memory.h>

main() {

int s;
struct ip_fw *rules = NULL;
int nalloc = 0, nbytes = 0, num = 0, i = 0, unit = 0;

s = socket( AF_INET, SOCK_RAW, IPPROTO_RAW);

unit = sizeof(*rules);
while (num >= nalloc) {
nalloc = nalloc*2+200;
nbytes = nalloc*unit;
if ((rules = realloc(rules, nbytes)) == NULL) {printf("Can't reallocate memory\n"); exit(1);}
if (getsockopt(s, IPPROTO_IP, IP_FW_GET, rules, &nbytes) < 0) {printf("getsockopt(IP_FW_GET) not available"); exit(1);}
num = nbytes/unit;
}

for (i = 0; i < num; i++)
{
  printf("Rule number=%-5d  bytes=%-20d\n",rules[i].fw_number, rules[i].fw_bcnt);
}

}

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру