2010-04-01 180 views
0

我想MYCOMPUTER的ip地址在一个变量 这个语句打印ip地址我的电脑 的,但我想它分配在varible 如何从inet_ntoa(inaddrr(ifr_addr.sa_data))获取ip地址的值转换为可变IP char*类型。获取ip地址的值

printf("IP Address: %s\n", inet_ntoa(inaddrr(ifr_addr.sa_data))); 
+0

正如我们在最近三次指出的那样,这是重复的。阅读我们关闭时所链接的答案。 – 2010-04-01 12:07:27

+0

可能的重复http://stackoverflow.com/questions/485769/how-do-i-find-a-computers-ip-address – 2010-04-01 12:08:12

+0

http://stackoverflow.com/questions/917332/getting-my-ip-地址 – 2010-04-01 12:08:47

回答

2

inet_ntoa已经返回char * - 这只是它指向一个静态缓冲区,这将在后续调用覆盖。如果你想保存指向的字符串,你可以使用strdup()

char *ip; 
/* ... */ 
ip = strdup(inet_ntoa(inaddrr(ifr_addr.sa_data))); 

请立即拨打ipfree()当你用它做。