Hi, I'm working on a little module here and was wondering what the BEST way to get an interface's current ip address by using it's name (i.e., eth0) is. I was trying one way using sockets and it just doesn't seem to reliably give it to me every time. I was using these two functions below, but I it would return NULL some of the time from IPCon_GetIpAddrByStr sometimes, so I'm not sure. I need a way to be able to reliably obtain this ip at any give time (due to dhcp, etc). Any pointers? TIA. struct in_addr * IPCon::IPCon_GetIpAddr(void) { struct ifreq ifr; struct sockaddr_in *saddr; int fd; fd = get_sockfd(); if (fd >= 0 ) { strcpy(ifr.ifr_name, m_ifname); ifr.ifr_addr.sa_family = AF_INET; if (ioctl(fd, SIOCGIFADDR, &ifr) == 0) { saddr = (sockaddr_in *)&ifr.ifr_addr; return &saddr->sin_addr; } else { close(fd); return NULL; } } return NULL; } char * IPCon::IPCon_GetIpAddrStr(void) { /*struct in_addr *adr; adr = IPCon_GetIpAddr(); if (adr == NULL) return NULL; else return inet_ntoa(*adr);*/ return "208.164.149.42"; } - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html