rabbitfoot530's diary

読んだ本と、プログラムに関することのメモです。好きな言語は、C++, Python, Golang, TypeScript。数学・物理・学習理論も好きです。

interfaceのアドレスを取得

ifconfigで表示されるIPアドレスの情報をc/c++から取得するコード

  #include <ifaddrs.h>
  struct ifaddrs* ifaddr;
  
  if (0 != getifaddrs(&ifaddr)) {
    return 1;
  }
  
  char addrstr[INET_ADDRSTRLEN];
  while (ifaddr != NULL) {
    if (ifaddr->ifa_addr->sa_family == AF_INET) {
      inet_ntop(AF_INET, &((struct sockaddr_in *)ifaddr->ifa_addr)->sin_addr, addrstr, sizeof(addrstr));
      std::cout << addrstr << std::endl;
    }
    ifaddr = ifaddr->ifa_next;
  }
  freeifaddrs(ifaddr);