IP 정보 읽어오기.
글쓴이: ktd2004 / 작성시간: 화, 2003/06/17 - 10:41오후
다음과 같은 코드로 현재 PC의 IP 정보를 읽어왔습니다.
그런데 static IP일 경우에는 정상적으로 IP를 읽어옵니다. (eth0)
그런데 이게 pppoe로 연결되었을때는 ppp0에서 IP를 읽어와야 하는데 그렇지 못한것 같습니다. 혹시 현재 네트웍 장치( lo, eth0, ppp0)들의 IP의 리스트를 모두 읽어오는 코드 알고 계신분 안계시나요? 부탁드립니다.
struct protoent *ptrp; struct sockaddr_in sad; int port = 5193; struct ifreq ifr; int sd; unsigned char tmac[14]; unsigned char tip[14]; sad.sin_port = htons( port); if( (ptrp = getprotobyname( "tcp")) == 0) { fprintf( stderr, "error in getprotobyname.[%s]\n", strerror( errno)); return -1; } sd = socket( AF_INET, SOCK_STREAM, ptrp->p_proto); if( sd < 0) { fprintf( stderr, "error in socket.[%s]\n", strerror( errno)); return -1; } sprintf( ifr.ifr_ifrn.ifrn_name, "eth0"); ioctl( sd, SIOCGIFHWADDR, &ifr); memcpy( tmac, &ifr.ifr_ifru.ifru_hwaddr.sa_data, 14); ioctl( sd, SIOCGIFADDR, &ifr); memcpy( tip, &ifr.ifr_ifru.ifru_addr.sa_data, 14); sprintf( str, "%02x.%02x.%02x\n%d.%d.%d.%d.\n", tmac[3], tmac[4], tmac[5], tip[2], tip[3], tip[4], tip[5]);
Forums:
비슷한 내용..
http://bbs.kldp.org/viewtopic.php?t=20898
댓글 달기