2010-04-01 221 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()當你用它做。