KDK_NET_GET_MULTIPLE_PORT_STAT(3) Library Functions Manual KDK_NET_GET_MULTIPLE_PORT_STAT(3)

kdk_net_get_multiple_port_stat - 获取指定网络端口的状态

#include <libkynetinfo.h>

extern int kdk_net_get_multiple_port_stat(int start, int end, int *result);

Link with -lkynetinfo.

The main function of the interface is to obtain the compartment port status.

The argument start is the start port.

The argument end is the end port.

The argument result is the compartment port status receives the buffer.

On success, return 0.

On error, return -1.

#include "libkynetinfo.h"
#include "stdio.h"
#include "stdlib.h"
int main(int argc, char *argv[])
{
    prouteMapList list = kdk_net_get_route(), tmp = list;
    while (tmp)
    {
        printf("%s default route %s0, tmp->name, tmp->addr);
        tmp = tmp->next;
    }
    kdk_net_free_route(list);
    if (argc < 2)
        printf("please input test port num0);
    else
        printf("port:%s's state %d0, argv[1], kdk_net_get_port_stat(atoi(argv[1])));
    pChain chain = kdk_net_get_iptable_rules();
    pChain tmpchain = chain;
    while(tmpchain)
    {
        printf("Chain: %spolice: %s0,tmpchain->total,tmpchain->policy);
        pChainData tmpData = tmpchain->data;
        if(tmpData)
            printf("target: %sprot: %sopt: %ssource: %sdestination: %soption: %s0,tmpData->target,tmpData->prot,tmpData->opt,
                                tmpData->source,tmpData->destination,tmpData->option);
        printf("0);
        tmpchain = tmpchain->next;
    }
    kdk_net_free_chain(chain);
    int result[65536];
    int net = kdk_net_get_multiple_port_stat(0, 1000, result);
    if(net == 0)
    {
        size_t count = 0;
        for(;count < 1000 ;count++)
        {
            printf("%d", result[count]);
        }
    }
    else
        printf("Failed With %d", net);
     printf("0);
    char mask[32] = " ";
    kdk_net_get_netmask("enaftgm1i0", mask);
    printf("mask = %s0, mask);
    char **port = kdk_net_get_proc_port();
    size_t index = 0;
    while(port[index])
    {
        printf("No.%ld, port = %s0, index+1, port[index]);
        index++;
    }
    kdk_net_freeall(port);
    port = kdk_net_get_up_port();
    index = 0;
    while(port[index])
    {
        printf("No.%ld, port = %s0, index+1, port[index]);
        index++;
    }
    kdk_net_freeall(port);
    char *hosts = kdk_net_get_hosts();
    if (hosts != NULL)
    {
        printf("hosts = %s0, hosts);
        free(hosts);
    }
    char *domain = kdk_net_get_hosts_domain();
    if (domain != NULL)
    {
        printf("domain = %s0, domain);
        free(domain);
    }
    char **resolv = kdk_net_get_resolv_conf();
    index = 0;
    while(resolv[index])
    {
        printf("No.%ld, resolv = %s0, index+1, resolv[index]);
        index++;
    }
    kdk_net_freeall(resolv);
    return 0;
}

These functions are as per the withdrawn POSIX.1e draft specification. The following functions are Linux extensions: kdk_net_get_netmask(), kdk_net_get_port_stat(), kdk_net_get_route(), kdk_net_get_iptable_rules(), kdk_net_free_route(), kdk_net_free_chain(), kdk_net_get_proc_port(), kdk_net_get_up_port(), kdk_net_get_hosts(), kdk_net_get_hosts_domain(), kdk_net_get_resolv_conf() and kdk_net_freeall().

kdk_net_get_netmask(3), kdk_net_get_port_stat(3), kdk_net_get_route(3), kdk_net_get_iptable_rules(3), kdk_net_free_route(3), kdk_net_free_chain(3), kdk_net_get_up_port(3), kdk_net_get_hosts(3), kdk_net_get_hosts_domain(3), kdk_net_get_resolv_conf(3) and kdk_net_freeall(3).

Thu Sep 14 2023 Linux Programmer's Manual