2018년 4월 22일 일요일

Network interface list - C언어

Network interface list


Sample code


#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/socket.h>
#include <ifaddrs.h>
#include <netdb.h>
#include <netinet/in.h>

int main(int argc, char *argv[])
{
    struct ifaddrs * addrs, * tmp;
    getifaddrs(&addrs);
    tmp = addrs;

    while (tmp) {
        char ipstr[INET6_ADDRSTRLEN] = {0,};
        struct sockaddr * addr = (struct sockaddr*)tmp->ifa_addr;
        printf("[%s]\n", tmp->ifa_name);
        if (addr) {
            inet_ntop(addr->sa_family,
                      (addr->sa_family == AF_INET ?
                       (void*)&((struct sockaddr_in*)addr)->sin_addr :
                       (void*)&((struct sockaddr_in6 *)addr)->sin6_addr),
                      ipstr, sizeof(ipstr));
            printf(" * type: %d, addr: %s\n", addr->sa_family, ipstr);
        }

        tmp = tmp->ifa_next;
    }

    freeifaddrs(addrs);

    return 0;

}

댓글 없음:

댓글 쓰기

UPnP 용어 정리

용어 정리 https://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.0.pdf https://openconnectivity.org/upnp-specs/UPnP-arch-DeviceArchitecture...