Как использовать библиотеку libiptc в C / C ++ - PullRequest
0 голосов
/ 17 января 2019

Мне нужно разработать консольную программу на C / C ++, которая получает счетчики заданных правил iptables. Может кто-нибудь отправить мне:

  • как установить libiptc в Debian 9 Stretch
  • простой пример кода
  • соответствующая команда для его компиляции

Наиболее рекомендуемый веб-сайт https://www.tldp.org/ использует ядро ​​2.4.x и iptables 1.4.0, которые оба устарели

У меня есть:

  • Debian 8, Джесси
  • 4.19.1 версия ядра
  • iptables версия 1.6.0
  • gcc 5.4.0

Я пытался следовать туто: https://www.tldp.org/, но версия ядра и iptables устарела. Я хочу, чтобы следующий код компилировался:

/*
 * How to use libiptc- program #1
 * /usr/local/src/p1.c
 */

#include <getopt.h>
#include <sys/errno.h>
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#include <dlfcn.h>
#include <time.h>
#include "libiptc/libiptc.h"
#include "iptables.h"

int main(void)
{
    iptc_handle_t h;
    const char *chain = NULL;
    const char *tablename = "filter";


    program_name = "p1";
    program_version = NETFILTER_VERSION;

    h = iptc_init(tablename);
        if ( !h )   {
        printf("Error initializing: %s\n", iptc_strerror(errno));
        exit(errno);
    }

    for (chain = iptc_first_chain(&h); chain; chain = iptc_next_chain(&h))  {
        printf("%s\n", chain);
    }

    exit(0);

} /* main */

Что должно печатать встроенные цепочки фильтров iptables:

INPUT
OUTPUT
FORWARD

...