자신의 ip를 알 수 있는 방법을 가르쳐 주세여..

익명 사용자의 이미지

안녕하십니까..
자신의 ip를 알고 싶습니다.
책을 찾아 보니 server_addr.sin_addr.s_addr = htonl(INADDR_ANY);이것
을 inet_ntoa()를 통하면 자신의 주소를 얻는다는데.. 0.0.0.0으로 나오네
요..
방법이 없는건가요? 웹을 찾아봐도 안 나오네여..
도와주세여..

익명 사용자의 이미지

#include
#include
#include
#include
#include
#include
#include

int main(int argc,char
**argv) {
int sockfd;
char ipstr[40];
struct ifreq ifr;

if ( argc != 2 ) {
printf("Usage %s
\n",argv[0]);
return 0;
}


strncpy(ifr.ifr_name,argv[1],IFNAMSIZ);
sockfd =
socket(AF_INET,SOCK_STREAM,0);
if (
ioctl(sockfd,SIOCGIFADDR,&ifr)
< 0 ) {
perror("ioctl");
return -1;
}


inet_ntop(AF_INET,ifr.ifr_addr.sa_data+2,ipstr,sizeof(struct
sockaddr));
printf("ip addr is
%s\n",ipstr);
return 0;
}