KDK_NC_IS_WIRELESS(3)

📦 version 3.0.1.4, in arch rolling, ubuntu resolute, ubuntu stonking

💖 KDK_NC_IS_WIRELESS 💖

okay bestie so this is a page from the Library Functions Manual — it's kdk_nc_is_wireless(3), and it's literally the little function that tells you if a network card is giving wireless or ethernet. no cap, that's the whole vibe. let's go ✨


🌸 NAME 🌸

kdk_nc_is_wireless — 获取指定网卡的有线/无线类型

(iykyk: it grabs the wired/wireless type of the NIC you point at 🫶)


🎀 SYNOPSIS 🎀

#include <libkync.h>

extern int kdk_nc_is_wireless(const char *nc);

and bestie, don't forget to Link with -lkyhw or nothing's gonna link. periodt. 💅


🦋 Detailed Description 🦋

so the main character energy of this interface? its whole job is to obtain the wired/wireless type of the specified NIC nc. that's it. that's the gig. 👑

the argument nc is the name of the NIC, such as "eno1".


✨ RETURN VALUE ✨

  • on success: wireless returns 1 and wired returns 0 🎉
  • on error: return -1 😭

🌈 EXAMPLES 🌈

here's a whole lil program that uses it, plus a bunch of its besties. copy it exactly, no edits, fr fr:

#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: %sStatus: %sMac: %sIPv4: %sIPv6: %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;
}

see that line? kdk_nc_is_wireless(cards[index]) ? "wireless" : "ethernet" — that's our girl doing her thing inside a ternary. iconic. 💅


💜 CONFORMING TO 💜

these functions are as per the withdrawn POSIX.1e draft specification (rip to that draft, we still love her 🙈).

the following functions are Linux extensions:

  • kdk_nc_get_cardlist()
  • kdk_nc_get_upcards()
  • 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_up()
  • kdk_nc_get_vendor_and_product()
  • kdk_nc_get_driver()
  • kdk_nc_freeall()

👑 SEE ALSO 👑

go read these next, bestie, they're all part of the same friend group:


and that's the whole page!! 💖 this one came straight out of the Linux Programmer's Manual, dated Fri Aug 25 2023, and it's filed under KDK_NC_IS_WIRELESS(3) in case you ever need to find her again. mwah, go check some NICs, you got this 🫶✨🌸

📦 where this page comes from