C 获取ipaddress的值
我想在变量中获取我的计算机的IP地址 此语句打印我的计算机的IP地址 但我想用一个变量来赋值 如何从C 获取ipaddress的值,c,linux,C,Linux,我想在变量中获取我的计算机的IP地址 此语句打印我的计算机的IP地址 但我想用一个变量来赋值 如何从inet\u ntoa(inaddrr(ifr\u addr.sa\u data))将ipaddress的值提取到char*类型的变量ip中 printf("IP Address: %s\n", inet_ntoa(inaddrr(ifr_addr.sa_data))); inet\u ntoa已经返回了一个char*——只是它指向一个静态缓冲区,在后续调用中会被覆盖。如果要保存指向的字符串,只
inet\u ntoa(inaddrr(ifr\u addr.sa\u data))
将ipaddress的值提取到char*
类型的变量ip中
printf("IP Address: %s\n", inet_ntoa(inaddrr(ifr_addr.sa_data)));
inet\u ntoa
已经返回了一个char*
——只是它指向一个静态缓冲区,在后续调用中会被覆盖。如果要保存指向的字符串,只需使用strdup()
:
完成后,您应该在
ip
上调用free()。阅读我们在关闭它时链接到的答案。这个问题的可能副本实际上并不是那些问题的副本-它实际上是一个更基本的C问题。
char *ip;
/* ... */
ip = strdup(inet_ntoa(inaddrr(ifr_addr.sa_data)));