Linux下获取本机IP地址的代码

时间:2023-01-11 20:59:16

Linux下获取本机IP地址的代码,返回值即为互联网标准点分格式的字符串。

#define ETH_NAME  "eth0"

//获得本机IP地址
char* GetLocalAddress()
{
int sock;
struct sockaddr_in sin;
struct ifreq ifr; sock = socket(AF_INET, SOCK_DGRAM, );
if (sock == -)
{
perror("socket");
return NULL;
} strncpy(ifr.ifr_name, ETH_NAME, IFNAMSIZ);
ifr.ifr_name[IFNAMSIZ - ] = ; if (ioctl(sock, SIOCGIFADDR, &ifr) < )
{
perror("ioctl");
return NULL;
} memcpy(&sin, &ifr.ifr_addr, sizeof(sin));
return inet_ntoa(sin.sin_addr);
}