KDK_NET_GET_HOSTS(3)

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

💖 KDK_NET_GET_HOSTS(3) 💖

okay bestie, gather round, because this is a Library Functions Manual page and it's about grabbing your hosts config. yes, that hosts config. let's go 🦋


✨ NAME ✨

kdk_net_get_hosts — 获取hosts配置 (aka: get the hosts config, fr fr)


🌸 SYNOPSIS 🌸

#include <libkynetinfo.h>

extern char* kdk_net_get_hosts();

Link with -lkynetinfo.


🎀 Detailed Description 🎀

The main function of the interface is to obtain the hosts configuration. that's it. that's the whole job. it shows up, it reads your hosts config, it hands it to you. main character energy honestly 💅


👑 RETURN VALUE 👑

  • On success — returns the hosts configuration of type char *. and listen, bestie, the returned string needs to be released by free. do not forget this. the way that memory just sits there unreleased... 😭
  • On error — return NULL.
🫶 real talk: check for NULL before you do anything with it. every single time.

🌈 EXAMPLES 🌈

here's the whole vibe, copied verbatim because facts are facts and I don't play with code:

#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;
}

see the little free(hosts); at the bottom? that's the moment. it's giving responsible memory management. we love to see it 🧚


⭐ CONFORMING TO ⭐

These functions are as per the withdrawn POSIX.1e draft specification. (withdrawn, bestie. it's giving vintage. it's giving collector's item 💀)

The following functions are Linux extensions:

  • kdk_net_get_multiple_port_stat()
  • 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_netmask()
  • kdk_net_get_proc_port()
  • kdk_net_get_up_port()
  • kdk_net_get_hosts_domain()
  • kdk_net_get_resolv_conf()
  • kdk_net_freeall()

🔥 SEE ALSO 🔥

go read these next, no cap:


and that's the whole page, bestie!! 🎀 this one came out of the Linux Programmer's Manual, dated Thu Sep 14 2023, and you just read KDK_NET_GET_HOSTS(3). stay hydrated, free your strings, and go read the source. mwah 💜✨

📦 where this page comes from