Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175

    [C] Ottenere nome simbolico dell' host collegato

    Ho un server e un client in comunicazione tramite socket TCP, quando
    il server è in ascolto e il client si connette ho bisogno di conoscere
    il nome simbolico del client ed altre info, per ora riesco a ottenere
    l'ip ma non so come fare ad ottenere il nome simbolico. Questa è la
    funzione:
    codice:
    void funzione(int fd){
        struct sockaddr_in tmp;
        unsigned int addrlen=sizeof(tmp);
        getpeername(fd,(struct sockaddr*)&tmp,&addrlen);
        printf("Client: %s\n",inet_ntoa(tmp.sin_addr));
    
    }
    Siccome sono in locale quando invocata viene stampato 127.0.0.1,
    quello che vorrei è fargli stampare localhost (il nome simbolico
    appunto).

    Ho sentito parlare di getnameinfo() ma non riesco a capire come usarla nella mia funzione.

  2. #2
    Utente di HTML.it L'avatar di bum
    Registrato dal
    Jun 2008
    Messaggi
    234
    Questo potebbe essere di aiuto http://linuxreviews.org/man/getnameinfo/.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    Già, ma dando un'occhiata al prototipo prende una struct sockaddr questa funzione quindi dovrei cmq usare getpeername così in tmp ho un sockaddr_in valido.
    Dopo creo un sockaddr che deve puntare al sockaddr_in (ovvero a tmp), stando a quanto dice il man:
    The sockaddr structure should point to either a sockaddr_in or sockaddr_in6 structure (for IPv4 or IPv6 respectively) [...]
    Quindi creo una struttura sockaddr:
    codice:
    struct sockaddr *sa;
    ma come faccio ora a far puntare sa a tmp???

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    Non riesco ad usarla, qualcuno mi direbbe come fare????

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    up

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.