Newsgroup: it.comp.java
Titolo: Conoscere l'ip localhost

Ho bisogno di conscere l'ip della mia macchina. che metodi devo usare?
public static void main(String[] args) {
String ip=toString(InetAddress.getLocalHost());
}
qualcosa del genere intendo. ovviamente con questo codice non mi funziona.


Guarda java.net.NetworkInterface#getNetworkInterfaces() - proprio nelle 
API suggerisce: "NOTE: can use getNetworkInterfaces()+getInetAddresses() 
to obtain all IP addresses for this node"
Ciao!
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */

 ha scritto nel messaggio
news:bprfh8$juj$1...@le1.cs.unibo.it...

non va. Ma è possibile che non esiste un banale metodo statico che mi
restituisca l'ip della macchina su cui gira l'applicazione?

 restituisca l'ip della macchina su cui gira l'applicazione?
Scusa, ma "non va" non vuoi dire un bel niente, se non posti almeno un 
pezzo di codice che "non va" o che non fa quel che ti aspetti. Cmq, ecco 
due righe di codice buttate giu' per farti vedere quel che intendo...
import java.net.*;
import java.util.*;
class GetIP
{
   public static void main(String[] args) throws UnknownHostException, 
SocketException
   {
     NetworkInterface ne;
     for(Enumeration e = NetworkInterface.getNetworkInterfaces();
         e.hasMoreElements(); )
     {
       ne = (NetworkInterface)e.nextElement();
       System.out.println(ne.getName() + " (" + ne.getDisplayName() + ")");
       for(Enumeration e2 = ne.getInetAddresses(); e2.hasMoreElements(); )
         System.out.println("  " + 
((InetAddress)e2.nextElement()).getHostAddress());
     }
   }
}
Eseguilo e dacci un'occhiata, dovresti capire il funzionamento generale.


 ha scritto nel messaggio
news:bpskn6$18q$2...@le1.cs.unibo.it...

beh io intendo fare una cosa del genere:
public class Mia() {
    public Mia() {
        metodo che mi restituisca l'ip della macchina su cui gira questo
codice, sotto forma di stringa
    }
}

 }
evito le invocazioni scherzose ad entita' superiori che mi sono venute 
in mente appena ho letto la risposta, per non offendere la sensibilita' 
altrui ;) - ma almeno hai provato a lanciare il codice che ti ho dato? 
Non hai notato che fa esattamente quello che vuoi tu - semplicemente che 
lo stampa a video invece di fare un return, e stampa qualche altra 
informazione supplementare che puoi semplicemente eliminare?
E cmq rimane il problema che un computer puo' avere _piu'_ indirizzi IP 
ad esso assegnati, teoricamente uno per interfaccia, quindi devi 
arrenderti ad avere un _insieme_ di IP, non uno solo. Poi, il piu' delle 
volte, tolti da questo il classico loopback 127.0.0.1, ne rimane solo un 
altro, e quindi puoi usare quello, ma non ti consiglio di assumerlo di 
default. Il mio computer in questo istante, ad esempio, ha 3 indirizzi 
IP, escluso il 127.0.0.1 ...


 ha scritto nel messaggio
news:bpt9u7$3mf$1...@le1.cs.unibo.it...

beh se devo scrivere tutto quel casino preferisco questo decisamente:
try {
       InetAddress loc = InetAddress.getLocalHost();
       hostfield.setText(loc.getHostAddress());
     }
     catch (UnknownHostException ex1) {
     }
io stavo solo cercando di sapere se esiste un metodo statico (quindi
ridurre la marmaglia di codice) che mi restituisca l'ip inteso come ip che
si può leggere facendo un /dns in 
irc.tin.it
!

 beh se devo scrivere tutto quel casino preferisco questo decisamente:
D'accordo, scrivi il codice che ti piace di piu', e scusa per "tutto 
quel casino". A volte mi chiedo perche' sto a scrivere del codice 
corretto, invece di codice corto.
[domanda correlata: perche' la microsoft riesce a scrivere codice che 
non ha nessuna delle due proprieta'? :)]
