Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [C] Ottenere indirizzo IP

    Ciao a tutti, avrei bisogno di fare un piccolo programmino C che mi restituisca come output l'indirizzo IP della mia macchina. (non il 127.0.0.1).
    Non ho nessun router quindi nessun problema di IP interno o esterno e sto lavorando con le librerie di Linux. Ho scritto qualcosa ma ottengo degli indirizzi IP a casaccio sempre diversi!
    Ho cercato in internet se ci fosse qualcosa già fatto ma non ho trovato niente..
    Sapete darmi una dritta?

    Grazie, ciao ciao!

  2. #2
    Questo è quello che ho combinato ma come ripeto restituisce IP a caso sempre diversi..

    codice:
    char *getip (u_long in);
    
    int
    main ()
    {
    
      struct
        {
          struct iphdr ip;
          char data[sizeof (struct iphdr)];
        } Packet;
    
              printf("SOURCE IP: %s\n",getip(Packet.ip.saddr));
    
    }
    
    char *getip ( u_long in)
    {
      struct in_addr s;
      s.s_addr = in;
      return inet_ntoa(s);
    }

  3. #3
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Intendi l'ip della "rete locale" o quello con cui sei collegato a internet?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  4. #4
    Quello con cui sono collegato ad internet!

  5. #5
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Su linux non lo so (a dir la verità non lo so nemmeno su windows ) ma potresti provare a usare
    codice:
    popen(ifconfig)
    e cercare di effettuare il parsing dell'output...
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  6. #6
    Ma non saprei come estrarre solo l'IP. Mi serve quello perchè devo salvarlo in una variabile

  7. #7
    Siamo sempre sullo stesso problema: comunque tu sia collegato ad internet è sempre molto ma molto probabile che la tua macchina, di per sé, non sappia il suo indirizzo visibile dall'esterno, perché spesso e volentieri si trova dietro a uno o più NAT (tuoi o del tuo ISP). L'unica di solito è effettuare una richiesta HTTP ad un qualunque sito che restituisce il tuo IP (ad esempio http://pchelplive.com/ip.php) ed esaminare il risultato.
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Risolto ma scavalcando il problema..

    Ho aggiunto al file /etc/ppp/ip-up la riga:

    codice:
    echo $4 > ip
    e poi vado a riprendermi la stringa scritta nel file


  9. #9
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Potrei vedere il codice? Sono curioso.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  10. #10
    codice:
        FILE        *ingresso;
        
        printf("Lettura dal file %s\n",FileIP);
        ingresso=fopen(FileIP,"r");
        if(ingresso==NULL)
            return ErroreIO;
        stringa=calloc(LunghezzaMaxStringa,sizeof(char));
        if(stringa==NULL)
            return ErroreMemoria;
        fscanf(ingresso,"%s",stringa);
        printf("Stringa: %s\n",stringa);
        fclose(ingresso);

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 © 2025 vBulletin Solutions, Inc. All rights reserved.