Newsgroup: it.comp.java
Titolo: Classe InetAddress

Ciao gente,
come faccio a sapere il nome del mio Clien?!?!
usando la classe InetAddress :
        String Host="boh";
        try
        {
        InetAddress H ;
        H = InetAddress.getLocalHost();
            System.out.println("Host: " + H.toString());
        Host = H.getHostName();
        } catch (Exception e)
        {
                Host="erro";
        }
ottengo localhost/
127.0.0.1
che tutto sommato e' giusto, ma totalmente inutile!!
Da notare che sulla versione < 1.3 di java ottenevo 
l'informazionecorretta....
RIccardo


wrote:
import java.net.*;
public class MyHostName{
        public static void main(String[] args){
                try{
                        InetAddress myHost=InetAddress.getLocalHost();
                        InetAddress[]
allLocal=InetAddress.getAllByName(myHost.getHostName());
                        for(int i=0;i<allLocal.length;i++){
System.out.println(allLocal[i].getHostName()); 
                                // a te l'incomodo di scegliere il tuo
                                // hostname preferito...
                        }
                }catch(Exception e){
                        e.printStackTrace();
                }
        }
}
--------
La forza di gravitŕ č un falso mito, la Terra succhia!

         public static void main(String[] args){
lo credereste: non ho mai compilato un programma java che non sia una 
applet!  quindi ho preso il tuo esempio, e dopo averlo fedelmente 
riprodotto con cut&paste l'ho compialato e provato:
Exception in thread "main" java.lang.NoClassDefFoundError: 
MyHostName/class     
quindi mi sfugge qualcosa, suppongo; resta il fatto che nella mia 
applet non cavo un ragno dal buco ...
RIc

MyHostName/class     
questo non me lo spiego; il mio sorgente compila e gira correttamente
sulla mia macchina (pent II 350 win 98 jdk 1.2)
Ciao,
Maurizio.


 sulla mia macchina (pent II 350 win 98 jdk 1.2)
jdk 1.3 di sun , sotto Linux

 
qui mi rispondo da solo perche' 5 mesg piu' avanti hanno gia risposto:
ho lanciato java MyHostName.class  invece di java MyHostName   :-D
e in questo modo, quingi come programma,
funziona regolarmento ovvero ottengo il nome effettivo della macchina 
:-/
RIc

 writes:
Riguardo al problema iniziale, in una applicazione mi funzionano tutte
queste tecniche sia sotto NT che sotto Linux. Occhio perņ, le macchine
hanno una connessione di rete permanente
        InetAddress a = InetAddress.getLocalHost();
        System.out.println(InetAddress.getLocalHost().getHostAddress());
        System.out.println(InetAddress.getLocalHost().getHostName());
        System.out.println(a.getHostAddress());
        System.out.println(a.getHostName());
        System.out.println("==========================================");
        Socket b = new Socket("
mail.xxx.it
",110);
        System.out.println(b.getLocalAddress().getHostAddress());
        System.out.println(b.getLocalAddress().getHostName());
        System.out.println("==========================================");
 
        ServerSocket c = new ServerSocket(6666,1024,a);
        System.out.println(c.getInetAddress().getHostAddress());
        System.out.println(c.getInetAddress().getHostName());
 
Nota  che  su  Linux  partendo  dai  socket  la  macchina  mi  ritorna
l'hostname definito al  primo posto in /etc/hosts mentre  con la prima
mi ritorna quello indicato in /etc/sysconfig/network (non sono uguali).
--
Gian Uberto| main(){printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}
Lauri      |                        David Korn, 1987 ioccc best one liner 
(aka saint)|-------------------------------------------------------------------
em@ail: 
sa...@eng.it
 ( vedere X-nospam nello header - see X-nospam in header )