KDK_NET_GE..._PORT_STAT(3)

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

✨ KDK_NET_GET_MULTIPLE_PORT_STAT(3) ✨

okay bestie, welcome to the Library Functions Manual 💖 this is the page for kdk_net_get_multiple_port_stat(3) and it's literally gonna tell you how to peek at a whole range of network ports at once. no cap.


🌸 NAME 🌸

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

(that's "get the status of the network ports you specified", but make it fashion ✨)


🎀 SYNOPSIS 🎀

#include <libkynetinfo.h>

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

Link with -lkynetinfo. yes you have to actually link it, she's not gonna manifest herself 🫶


💅 Detailed Description 💅

so the whole main character job of this interface? getting the compartment port status. that's it. that's the gig 👑

  • 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

like, you hand her a starting port, an ending port, and a buffer to write into, and she does the rest. periodt.


⭐ RETURN VALUE ⭐

  • On success, return 0. slay 💖
  • On error, return -1. not slay 💀

🦋 EXAMPLES 🦋

here's the full demo, verbatim, because I would never edit code (that's a crime fr fr):

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

notice the int result[65536]; — she's allocating for the whole port universe, and then she only actually asks for 0 through 1000. do with that what you will 🙈


🌈 CONFORMING TO 🌈

These functions are as per the withdrawn POSIX.1e draft specification. (withdrawn!! rip bozo 😭)

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()
  • kdk_net_freeall()

🔥 SEE ALSO 🔥

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).

go read those too, they're the friend group 🫶


and that's the whole page bestie!! this came out of the Linux Programmer's Manual, version dated Thu Sep 14 2023 💖 go forth and port-scan responsibly, ily, bye!! ✨🎀🦋

📦 where this page comes from