111 lines
3.0 KiB
Groff
111 lines
3.0 KiB
Groff
.TH "KDK_NC_GET_CARDLIST" 3 "Fri Aug 25 2023" "Linux Programmer's Manual" \"
|
|
.SH NAME
|
|
kdk_nc_get_cardlist - 获取系统中所有的网卡
|
|
.SH SYNOPSIS
|
|
.nf
|
|
.B #include <libkync.h>
|
|
.sp
|
|
.BI "extern char** kdk_nc_get_cardlist();"
|
|
.sp
|
|
Link with \fI\-lkyhw\fP.
|
|
.SH "Detailed Description"
|
|
The main function of the interface is to obtain all NICs in the system
|
|
.SH "RETURN VALUE"
|
|
On success, returns a list of NIC names, ending with a
|
|
.BR NULL
|
|
string; Generated by
|
|
.I alloc
|
|
and needs to be recycled by
|
|
.BR kdk_nc_freeall
|
|
.PP
|
|
On error, return
|
|
.BR NULL.
|
|
.SH EXAMPLES
|
|
.EX
|
|
#include "libkync.h"
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
int main()
|
|
{
|
|
char **cards = kdk_nc_get_cardlist();
|
|
size_t index = 0;
|
|
printf("所有网卡:\en");
|
|
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] = "\0", product[256] = "\0";
|
|
kdk_nc_get_vendor_and_product(cards[index], vendor, product);
|
|
printf("Card %zd: %s\tStatus: %s\tMac: %s\tIPv4: %s\tIPv6: %s\t Vendor: %s\t Product: %s\t Type: %s\t driver: %s\en",
|
|
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\t", list4[i++]);
|
|
}
|
|
printf("\en");
|
|
char **list6 = kdk_nc_get_ipv6(cards[index]);
|
|
printf("AllIpV6: ");
|
|
i = 0;
|
|
while (list6 && list6[i])
|
|
{
|
|
printf("%s\t", list6[i++]);
|
|
}
|
|
printf("\en");
|
|
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("工作网卡:\en");
|
|
while (upcards[index])
|
|
{
|
|
printf("Card %zd: %s\en", index + 1, upcards[index]);
|
|
index++;
|
|
}
|
|
kdk_nc_freeall(upcards);
|
|
return 0;
|
|
}
|
|
|
|
.SH "CONFORMING TO"
|
|
These functions are as per the withdrawn POSIX.1e draft specification.
|
|
The following functions are Linux extensions:
|
|
.BR kdk_nc_is_up (),
|
|
.BR kdk_nc_get_upcards (),
|
|
.BR kdk_nc_get_phymac (),
|
|
.BR kdk_nc_get_private_ipv4 (),
|
|
.BR kdk_nc_get_ipv4 (),
|
|
.BR kdk_nc_get_private_ipv6 (),
|
|
.BR kdk_nc_get_ipv6 (),
|
|
.BR kdk_nc_is_wireless (),
|
|
.BR kdk_nc_get_vendor_and_product (),
|
|
.BR kdk_nc_get_driver (),
|
|
and
|
|
.BR kdk_nc_freeall ().
|
|
.SH "SEE ALSO"
|
|
.BR kdk_nc_is_up (3),
|
|
.BR kdk_nc_get_upcards (3),
|
|
.BR kdk_nc_get_phymac (3),
|
|
.BR kdk_nc_get_private_ipv4 (3),
|
|
.BR kdk_nc_get_ipv4 (3),
|
|
.BR kdk_nc_get_private_ipv6 (3),
|
|
.BR kdk_nc_get_ipv6 (3),
|
|
.BR kdk_nc_is_wireless (3),
|
|
.BR kdk_nc_get_vendor_and_product (3),
|
|
.BR kdk_nc_get_driver (3),
|
|
and
|
|
.BR kdk_nc_freeall (3). |