Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 30
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    33

    [C\Winsock]Scoprire IP

    ciao a tutti sono nuovo

    ho un problema:
    vorrei fare un programmino ke ti dice il tuo ip.hofatto una prima bozza ed è questo qui:
    [CODE]
    #include <winsock.h>
    #include <stdio.h>
    #include <string.h>
    #define h_addr h_addr_list[0]

    int main(){

    SOCKET sock;
    struct sockaddr_in server;
    WSADATA data;
    WORD p;
    p=MAKEWORD(2,0);
    WSAStartup(p,&data);
    hostent *myhost;

    sock=socket(AF_INET,SOCK_STREAM,0);
    server.sin_family=AF_INET;
    server.sin_port=htons(456);
    server.sin_addr.s_addr=INADDR_ANY;


    int IP;

    bind(sock,(struct sockaddr *)&server,sizeof(struct sockaddr));
    printf("il tuo IP è: %s \n", inet_ntoa(server.sin_addr) );
    scanf("%d", &IP);

    closesocket(sock);
    WSACleanup();
    return 0;
    }
    /CODE]
    il problema ke il programmino quando lo eseguo mi dice:

    Il tuo IP è:0.0.0.0

    perke??dove sbaglio???

    ciao a tutti e grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Guarda questo

    codice:
    WSADATA WSAData;
    WSAStartup(MAKEWORD(2, 0), &WSAData);
    
    char szHostName[128] = "";
    gethostname(szHostName, sizeof(szHostName));
    
    struct sockaddr_in skAdd;
    struct hostent *pHost = 0;
    
    pHost = gethostbyname(szHostName);
    memcpy(&skAdd.sin_addr, pHost->h_addr_list[0], pHost->h_length);
    
    printf("%s\n%s\n", szHostName, inet_ntoa(skAdd.sin_addr));
    
    WSACleanup();

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    33
    grazie oregon molto interessante.

    io ho due computer a casa collegati via WI-FI e quindi il programmino mi da l'IP:192.168.0.6

    se io lo provo su un pc isolato mi da l'IP normale?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Hai piu' IP configurati ?

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    33
    si

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Allora prova

    codice:
    WSADATA WSAData;
    WSAStartup(MAKEWORD(2,0), &WSAData);
    
    char szHostName[128] = "";
    gethostname(szHostName, sizeof(szHostName));
    
    struct sockaddr_in skAdd;
    struct hostent *pHost = 0;
    
    printf("%s\n", szHostName);
    
    pHost = gethostbyname(szHostName);
    for(int iCnt = 0; ((pHost->h_addr_list[iCnt]) && (iCnt < 10)); ++iCnt)
    {
      memcpy(&skAdd.sin_addr, pHost->h_addr_list[iCnt], pHost->h_length);
      printf("%s\n", inet_ntoa(skAdd.sin_addr));
    }
    
    WSACleanup();

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    33
    oregon mi fa la stessa cosa

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Scusa ... ma la configurazione TCP del tuo PC qual e'?

    ipconfig -all

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    33
    in che senso scusa...

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Lancia il comando che ti ho dato in una finestra dos ...

    Per controllare la configurazione di rete del PC ... dimmi cosa leggi ..

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.