Sto facendo un progetto per un esame, ma è agosto e devo provarlo a casa...il problema è che chiamando getLocalHost ottengo l'indirizzo di loopback 127.0.0.1, e questo mi crea problemi, come posso risolvere?
Sto facendo un progetto per un esame, ma è agosto e devo provarlo a casa...il problema è che chiamando getLocalHost ottengo l'indirizzo di loopback 127.0.0.1, e questo mi crea problemi, come posso risolvere?
www.valeweb.net
Ho spostato la discussione nel forum dedicato a Java.
In futuro, poni qui le tue domande relative a questo linguaggio.
Ciao!![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
InetAddress.getLocalHost () restituisce l'indirizzo IP della macchina in modo corretto (non il loopback). A meno che .... tu non l'abbia chiamata da una applet. In quel caso il security manager molto probabilmente ti ha negato l'accesso.Originariamente inviato da bettola
Sto facendo un progetto per un esame, ma è agosto e devo provarlo a casa...il problema è che chiamando getLocalHost ottengo l'indirizzo di loopback 127.0.0.1, e questo mi crea problemi, come posso risolvere?
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Se ho capito bene, il problema è che l'esecuzione su un PC non collegato in rete comporta che l'indirizzo restituito è 127.0.0.1 anziché un indirizzo di rete locale.
Per creare un InetAddress con un indirizzo IP qualunque (InetAddress non ha costruttori) puoi provare:
Non sono sicurissimo che il metodo getByName() non cerchi di accedere alla rete se l'argomento è una stringa in forma di indirizzo IP per fare un reverse DNS lookup, ma non credo. Lo scopri subito: se non puoi usare un indirizzo che sulla rete non esiste, il metodo ti restituirà una UnknownHostException.codice://InetAddress inetaddress=InetAddress.getLocalHost(); InetAddress inetaddress=InetAddress.getByName("192.168.1.254");
Sì, è vero, c'è anche questo caso. Ma se il PC non è in rete (o, come ho fatto io, ho disabilitato un attimo la rete sul mio PC) il PC .... non ha un "vero" indirizzo IP, ha solo il localhost (127.0.0.1).Originariamente inviato da engiman
Se ho capito bene, il problema è che l'esecuzione su un PC non collegato in rete comporta che l'indirizzo restituito è 127.0.0.1 anziché un indirizzo di rete locale.![]()
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Solo che il pc è in rete locale...ha come ip 192.168.1.6 ...è questa la cosa strana
www.valeweb.net
Allora prova questa semplice applicazione:Originariamente inviato da bettola
Solo che il pc è in rete locale...ha come ip 192.168.1.6 ...è questa la cosa strana
Questa stampa l'indirizzo IP, non il loopback ma quello ad es. 192.168.xxxcodice:import java.net.*; public class Prova { public static void main (String[] args) { try { String s = InetAddress.getLocalHost ().getHostAddress (); System.out.println (s); } catch (Exception e) { e.printStackTrace (); } } }
Se non ti funziona così, c'è qualcos'altro che adesso non saprei dirti.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet