Entra

View Full Version : C - trovare ip host remoto


gabmac2
16-08-2011, 19:29
Dando un nome di un host (anche di una macchina remota) con che funzione si può far restituire il suo IP?
Grazie in anticipo

marco.r
16-08-2011, 23:04
getaddrinfo

http://msdn.microsoft.com/en-us/library/ms738520(v=vs.85).aspx
http://linux.die.net/man/3/getaddrinfo

gabmac2
17-08-2011, 10:01
funziona sia su macchine in rete che per indirizzi internet?

marco.r
17-08-2011, 11:59
funziona sia su macchine in rete che per indirizzi internet?

Indirizzi internet sicuro. Se con macchine in rete intendi i nomi delle macchine windows, allora sotto linux no, sotto windows non so.

gabmac2
17-08-2011, 12:30
ok grazie,ma se ad esempio ci sono in rete più macchine linux e dal nome si vuole l' ip in c come si può fare?

marco.r
17-08-2011, 14:02
ok grazie,ma se ad esempio ci sono in rete più macchine linux e dal nome si vuole l' ip in c come si può fare?

Come ho detto sopra dipende da come e' impostato il nome macchina.
Se e' un nome impostato su /etc/hosts o su un dns, o comunque trovabile dal resolver di linux, allora con la funzione che ho indicato sopra.

gabmac2
17-08-2011, 15:01
ok,e se così non fosse che funzione si potrebbe usare?

marco.r
17-08-2011, 19:14
ok,e se così non fosse che funzione si potrebbe usare?
Beh, devi almeno dirmi cosa intendi per nome allora... nome Samba ? Altro ?

gabmac2
17-08-2011, 21:46
allora per esercizio sto implementando un piccolo dns,ho provato e per esempio dando www.sito.it da l' ip,ma se abbiamo ad esempio 2 macchine in rete linux ad esempio macchinaA e macchinaB vorrei che dando da macchinaA la funzione con come parametro macchinaB restituisca l' ip della macchinaB

gabmac2
19-08-2011, 09:20
nessuno?

marco.r
19-08-2011, 14:14
come dicevo prima, devi saperci dire cosa intendi con nome macchina. E' un nome in /etc/hostname, il nome della rete windows, un nome dato dal server DHCP, il post-it attaccato sopra... Come ce l'hai impostato ?

Cmq in generale un server DNS ha un database suo per i nomi delle macchine di cui e' responsabile. Se sono macchine in locale, a meno di una configurazione apposita da parte dell'amministratore di rete, devi andare scriverteli a mano da qualche parte.

gabmac2
19-08-2011, 16:26
intendo semplicemente il nome della macchina dando "hostname" da terminale