KDK_NC_GET_UPCARDS(3)

NAME
kdk_nc_get_upcards - 获取系统中当前处于 link up 状态的网卡列表

SYNOPSIS
#include <libkync.h>

extern char** kdk_nc_get_upcards();

Link with -lkyhw.

Detailed Description
The main function of the interface is to obtain a list of NICs that are currently in the "link up" state on the system.

RETURN VALUE
On success, returns a list of NIC names, ending with a NULL string; Generated by alloc and needs to be recycled by kdk_nc_freeall

On error, return NULL.

EXAMPLES
    #include "libkync.h"
    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
        char **cards = kdk_nc_get_cardlist();
        size_t index = 0;
        printf("所有网卡：\n");
        while (cards[index])
        {
            char *mac = kdk_nc_get_phymac(cards[index]);
            char *ipv4 = kdk_nc_get_private_ipv4(cards[index]);
            char *ipv6 = kdk_nc_get_private_ipv6(cards[index]);
            char *driver = kdk_nc_get_driver(cards[index]);
            char vendor[256] = " ", product[256] = " ";
            kdk_nc_get_vendor_and_product(cards[index], vendor, product);
            printf("Card %zd: %s	Status: %s	Mac: %s	IPv4: %s	IPv6: %s	 Vendor: %s	 Product: %s	 Type: %s	 driver: %s\n",
                   index + 1, cards[index], kdk_nc_is_up(cards[index]) == 1 ? "Up" : "Down",
                   mac, ipv4, ipv6, vendor, product,
                   kdk_nc_is_wireless(cards[index]) ? "wireless" : "ethernet", driver);

            char **list4 = kdk_nc_get_ipv4(cards[index]);
            int i = 0;
            printf("AllIpV4: ");
            while (list4 && list4[i])
            {
                printf("%s	", list4[i++]);
            }
            printf("\n");
            char **list6 = kdk_nc_get_ipv6(cards[index]);
            printf("AllIpV6: ");
            i = 0;
            while (list6 && list6[i])
            {
                printf("%s	", list6[i++]);
            }
            printf("\n");
            free(mac);
            free(ipv4);
            free(ipv6);
            free(list4);
            free(list6);
            free(driver);
            index++;
        }
        kdk_nc_freeall(cards);
        char **upcards = kdk_nc_get_upcards();
        index = 0;
        printf("工作网卡：\n");
        while (upcards[index])
        {
            printf("Card %zd: %s\n", index + 1, upcards[index]);
            index++;
        }
        kdk_nc_freeall(upcards);
        return 0;
    }

CONFORMING TO
These functions are as per the withdrawn POSIX.1e draft specification. The following functions are Linux extensions: kdk_nc_is_up(), kdk_nc_get_cardlist(), kdk_nc_get_phymac(), kdk_nc_get_private_ipv4(), kdk_nc_get_ipv4(), kdk_nc_get_private_ipv6(), kdk_nc_get_ipv6(), kdk_nc_is_wireless(), kdk_nc_get_vendor_and_product(), kdk_nc_get_driver(), and kdk_nc_freeall().

SEE ALSO
kdk_nc_is_up(3), kdk_nc_get_cardlist(3), kdk_nc_get_phymac(3), kdk_nc_get_private_ipv4(3), kdk_nc_get_ipv4(3), kdk_nc_get_private_ipv6(3), kdk_nc_get_ipv6(3), kdk_nc_is_wireless(3), kdk_nc_get_vendor_and_product(3), kdk_nc_get_driver(3), and kdk_nc_freeall(3).