[IP] 자신의 IP 얻어오기
다수의 아이피(IP)를 가지고 있는 경우 자신의 아이피(IP) 주소 목록을 얻는 프로그램입니다.
아래와 같이 winsock의 gethostname(), gethostbyname()을 이용하면 아이피 목록을 쉽게 알아낼 수 있습니다.
핵심코드: |
void GetMyIPArray( CArray< in_addr, in_addr& >& raIP ) { WSADATA WsaData; if( WSAStartup( 0x202, &WsaData ) == SOCKET_ERROR ) return;
char name[256]; PHOSTENT pHostInfo; struct sockaddr_in addr;
// 자신의 호스트이름 얻기 if( gethostname( name, sizeof( name ) ) == 0 ) { // 호스트이름을 통하여 호스트정보 얻기 pHostInfo = gethostbyname( name ); if( pHostInfo ) { // 반복해서 IP얻기 for( int i=0; pHostInfo->h_addr_list[i] != NULL; i++ ) { memcpy( &addr.sin_addr, pHostInfo->h_addr_list[i], pHostInfo->h_length ); raIP.Add( addr.sin_addr ); } } }
WSACleanup(); } |