gethostbyaddr работает нормально в Windows, но возвращает NULL в Linux

Этот фрагмент кода работает нормально в Windows, но gethostbyaddr возвращает NULL в Linux.

Я перепробовал так много изменений, но безуспешно.

Мой /etc/host.conf имеет следующую строку

заказать хосты, связать

Я запускаю полный код и передаю адрес 11.234.456.74, На windows gethostbyaddr разрешает адрес и работает нормально. Однако в Linux он не разрешает IP-адрес и возвращает NULL.

Пожалуйста помоги.

#ifdef WIN32
if (init){
    WSADATA wsaData;
    // Request Winsock version 2.2
    if (WSAStartup (MAKEWORD(1, 1), &wsaData) != 0) {
        WSACleanup();
        exit (EXIT_FAILURE);
    }
    init = 0;
}   
#endif

// Open required socket
p_socket[IP_SOCKET_SOCKET] = socket(AF_INET, server_socket_type, 0);
if ( p_socket[IP_SOCKET_SOCKET] < 0 ) {
#ifdef WIN32
    WSACleanup();
#endif
    exit (EXIT_FAILURE);
}
destAdrLen = mxGetM(prhs[0]) * mxGetN(prhs[0]) + 1;
destAdr  = (char *) mxMalloc(destAdrLen);
if (destAdr == NULL) {
    mexErrMsgTxt("mxMalloc(destAdrLen) failed");
}
mxGetString(prhs[0], destAdr, destAdrLen);

destPort = (int) mxGetScalar(prhs[1]);

if (isalpha(destAdr[0])) { 
    // socket address is a name
    hp = gethostbyname(destAdr);
}
else {      
    // socket address is a number
    addr = inet_addr(destAdr);
    hp = gethostbyaddr((char *)&addr, 4, AF_INET);
}

Ответы на вопрос(1)

Ваш ответ на вопрос