Linux下获取本机IP地址的代码,返回值即为互联网标准点分格式的字符串。
#define ETH_NAME "eth0"
//获得本机IP地址
char*
GetLocalAddress()
{
int sock;
struct sockaddr_in sin;
struct ifreq ifr;
sock = socket(AF_INET, SOCK_DGRAM,
0);
if (sock == -
1)
{
perror("socket");
return NULL;
}
strncpy(ifr.ifr_name, ETH_NAME, IFNAMSIZ);
ifr.ifr_name[IFNAMSIZ -
1] =
0;
if (ioctl(sock, SIOCGIFADDR, &ifr) <
0)
{
perror("ioctl");
return NULL;
}
memcpy(&sin, &ifr.ifr_addr,
sizeof(sin));
return inet_ntoa(sin.sin_addr);
}
转载于:https://www.cnblogs.com/lxt287994374/p/3909658.html