프로그래밍/C++ Builder

로컬 IP 알아내기

Dev-Drake 2019. 7. 16. 16:07
반응형

#include <winsock.h>

AnsiString __fastcall GetLocalIP(void) 
{ 
    WSAData wsaData; 
    if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0) 
        return ""; 
    char slocal[256]; 
    if (gethostname(slocal, 256) == SOCKET_ERROR) 
        return ""; 
    hostent *hos = gethostbyname(slocal); 
    if(hos == NULL) 
        return ""; 
    char *addr = *(hos->h_addr_list); 
    AnsiString LocalIP = AnsiString((unsigned char)addr[0]) + '.' 
                         + AnsiString((unsigned char)addr[1]) + '.' 
                         + AnsiString((unsigned char)addr[2]) + '.' 
                         + AnsiString((unsigned char)addr[3]); 
    WSACleanup(); 
    return LocalIP; 
}

 

반응형