작업 중에 IP가 부여된 NIC를 조회하는 코드가 필요했다.

자주 애용할 것 같아서 코드로만 남겨둔다.

 

소스코드

#include <sys/types.h>
#include <ifaddrs.h>
#include <stdio.h>
#include <string.h>
#include <arpa/inet.h>

int main()
{
	struct ifaddrs *addrs, *tmp;
	struct sockaddr_in *sa;
	char *addr;

	getifaddrs(&addrs);
	tmp = addrs;

	while (tmp)
	{
		if (tmp->ifa_addr && tmp->ifa_addr->sa_family == AF_INET){
			sa = (struct sockaddr_in*)tmp->ifa_addr;
			addr = inet_ntoa(sa->sin_addr);
            
			if(strcmp(tmp->ifa_name, "lo"))
				printf("Iface : %s\tAddress : %s\n", tmp->ifa_name, addr);
		}
		tmp = tmp->ifa_next;
	}

	freeifaddrs(addrs);
	return 0;
}
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기