Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500

    [C] ottenere indirizzo ip in rete locale

    ciao a tutti...volevo chiedere se esiste in C qualche funzione che permette di prelevare l'indirizzo ip di una macchina connessa ad una rete locale! a la macchina gira su windows xp sp2!
    grazie a tutti
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

  2. #2
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Devi avere almeno un parametro con cui identificare la macchina della quale vuoi l'indirizzo.
    Poi potrai enumerarle tutte e cercare la tua.
    "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

  3. #3
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    no...a me serve trovare l'ip della mia macchina! nel senso creare un programma che avviandolo su una macchina salvi in un file il proprio ip! mi serve perchè ho una macchina collegata in rete gestita con indirizzi dinamici e poichè gestisco questa macchina da remoto...da un'altra stanza, mi serve sempre l'indirizzo ip della macchina per connettermi...quindi avevo pensato di fare un programmino che a ogni avvio della macchina trova il proprio indirizzo ip nella rete locale e lo scrive in una cartella condivisa nella rete...così io dalla mia macchina posso vedere il suo ip e connettermi! spero di essermi spiegato...poi comunque non so se come soluzione sia un pò strampalata...però mi sembrava fattibile!
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    ringrazio per il link...ho letto un pò la discussione e un altro link presente nella discussione, ma ho capito che bisogna usare le socket e le funzioni gethostname e poi dopo aver ricevuto il nome, passarlo alla funzione gethostebyname che ritorna un puntatore a stuttura se non ho capito male, e poi da questa struttura tramite la funzione inet_ntoa si ricava la stringa dell'ip...giusto? detta così sembra facile...ma per me che sono totalmente allo scuro in questo campo della programmazione...non è poi tanto semplice! ho provato anche quel programma che è stato postato nella discussione da PeppePes88:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <winsock.h>
    
    int main(int argc, char *argv[])
    {
    
        
        WSADATA data; 
        HOSTENT *host;
        int err = WSAStartup(MAKEWORD(2,2), &data), i = 0; 
        char nome_host[100];
        
        if ( err ==  SOCKET_ERROR) 
            fprintf(stderr, "WSAStartup ERRORE : %d", WSAGetLastError()); 
        
        err = gethostname( nome_host, sizeof(nome_host)); 
        
        if ( err == SOCKET_ERROR) 
            
              fprintf(stderr, "Gesthostname ERRORE : %d", WSAGetLastError()); 
              
        printf("Il nome dell' host e' : %s\n", nome_host); 
        
        
        
        
        host = gethostbyname(nome_host); 
        
         if ( host == NULL)     
               printf("GetHostByNAme ERRORE : %d", WSAGetLastError()); 
         
         else {
         
         while ( host->h_addr_list[i])
              {
                        printf("%s\n",inet_ntoa(*((struct in_addr*)host->h_addr_list[i])));
                        i++;
                        }
         
         }
    
      
      system("PAUSE");	
      return 0;
    
    }
    ma onestamente a me non funziona niente...sarà che sbaglio a compilare...perchè mi da questi errori:
    codice:
      [Linker error] undefined reference to `WSAStartup@8' 
      [Linker error] undefined reference to `WSAGetLastError@0' 
      [Linker error] undefined reference to `gethostname@8' 
      [Linker error] undefined reference to `WSAGetLastError@0' 
      [Linker error] undefined reference to `gethostbyname@4' 
      [Linker error] undefined reference to `WSAGetLastError@0' 
      [Linker error] undefined reference to `inet_ntoa@4'
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da MrX87
    ma per me che sono totalmente all'oscuro in questo campo della programmazione...
    Beh ... allora, prima dovresti studiare la programmazione di rete (cominciando magari dai concetti di base del TCP) altrimenti non farai altro che fare copia-incolla di codice senza capirlo ...

    ma onestamente a me non funziona niente...sarà che sbaglio a compilare...perchè mi da questi errori:
    codice:
      [Linker error] undefined reference to `WSAStartup@8' 
      [Linker error] undefined reference to `WSAGetLastError@0' 
      [Linker error] undefined reference to `gethostname@8' 
      [Linker error] undefined reference to `WSAGetLastError@0' 
      [Linker error] undefined reference to `gethostbyname@4' 
      [Linker error] undefined reference to `WSAGetLastError@0' 
      [Linker error] undefined reference to `inet_ntoa@4'
    [/QUOTE]

    Quegli errori, come potrai leggere, indicano che il linker non trova la libreria relativa a quella funzione. Devi indicare al tuo compilatore (quale usi?) il nome di tale libreria e poi ricompilare.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    chiedo scusa per l'erroraccio di italiano...comunque...ritornando alla programmazione...bhè si sarebbe corretto che iniziassi a studiare la programmazione di rete anche se in questo momento ho molte materie dell'università che non parlando di programmazione, in quanto queste cose le studierò l'anno prossimo...tornado a noi, come compilatore uso il DevC++, e poi non so quale libreria devo inlcudere!
    grazie ancora
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

  8. #8
    Utente di HTML.it L'avatar di KrOW
    Registrato dal
    Feb 2009
    Messaggi
    281
    Se non erro dovresti linkare il programma con la libreria wsock32.lib

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Per il devcpp mi sembra che sia la

    libws2_32.a
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    Per il devcpp mi sembra che sia la
    libws2_32.a
    ma quindi devo includere questa libreria...e l'inclusione devo farla come includo qualsiasi libreria? poi non capisco...perchè è di estensione .a??
    codice:
    #include <libws2_32.a>
    oppure si fa in modo diverso??
    perdonate la mia ignoranza in questo ambito!
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

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.