Newsgroup: it.comp.java
Titolo: server

Ciao a tutti,
e' la prima volta che scrivo su questo newsgroup
ho fatto un piccolo server che rimane in attesa di una
connessione mediante la classe serversocket.
Il mio problema e' come risalire all'indirizzo ip che mi e' stato assegnato
al momento della connessione al mio provider.
Spero di essere stato chiaro, altrimenti insultatemi pure.
                                Grazie ciao.

 Spero di essere stato chiaro, altrimenti insultatemi pure.
Non esageriamo! :-)


Si ok, ma io voglio farlo in java, perche' questo indirizzo lo devo poi
trasferire
tramite ftp su un sito, in modo tale che un ipotetico client lo possa
andare a leggere e si possa cosi connettere al mio server.
                                    Grazie ciao.

Non so se il metodo getHostAddress() dell'oggetto InetAddress  ritornato dal
metodo getInetAddress() della classe ServerSocket o della classe Socket, a
seconda di quella che usi, faccia al caso tuo.

 Si ok, ma io voglio farlo in java, perche' questo indirizzo lo devo
poi
Oops..
Direi InetAddress.getLocalHost(); pero' bisogna verificare se ti ritorna
l'indirizzo associato all'interfaccia dialup, o alla scheda di rete, o
peggio al loopback..

 wrote in message
8ubkuj$1doad$1...@ID-56021.news.dfncis.de...

Grazie, questo e' quello che avevo fatto anche io,
ma non riesco a spiegarmi perche' non funziona,
mi restituisce sempre 0.0.0.0
                        Ciao.

 wrote in message
8ubo51$dmn$1...@serv1.iunet.it...

Grazie infinite, funziona perfettamente, anche se non ho capito bene come
faccia,
ma sopratutto non ho capito perche' non va in questo modo:
serversocket.getInetAddress().getHostAddress();
cosi' mi restituisce sempre 0.0.0.0
anche se il serversocket funziona perfettamente.
                                                                    Grazie
ciao.

                                    Grazie ciao.
Non ho tempo di provare altre soluzioni, ma se ti serve una soluzione
rapida lancia da java      winipcfg /batch <NomeFile>    e poi leggi
il file <NomeFile> generato con un banale FileInputListener; il file
prodotto dovrebbe essere qualcosa del tipo:
Configurazione IP di Windows 98
0 - Scheda Ethernet :
        Indirizzo IP. . . . . . . . : 151.25.240.9
        Subnet Mask . . . . . . . . : 255.255.0.0
        Gateway predefinito . . . . : 151.25.240.9
1 - Scheda Ethernet :
        Indirizzo IP. . . . . . . . : 192.168.0.100
        Subnet Mask . . . . . . . . : 255.255.255.0
        Gateway predefinito . . . . :
Da questo file è semplice reperire l'indirizzo IP assegnato dal
provider (151.25.240.9).
Ciao, Max.

 cosi' mi restituisce sempre 0.0.0.0
In effetti non e' chiaro, dovrebbe ritornare l'indirizzo del socket. Non
e' che c'e' qualcosa che non va a livello della tabella di routing di
Windows?
Inoltre, mi sembra che ci sia un po' di confusione..
InetAddress.getLocalHost() ritorna l'indirizzo della macchina, ma se ci
sono piu' interfacce, quale? E "localhost" non e' il nome assegnato
all'indirizzo del loopback? O sono io che ho della confusione? :)

> 
M> Grazie, questo e' quello che avevo  fatto anche io, ma non riesco a
M> spiegarmi perche' non funziona, mi restituisce sempre 0.0.0.0
Io  ho  provato il  metodo  statico  della  classe InetAddress  ed  ha
funzionato, però sono in connessione fissa:
//----------------------------------8<---[snip snip]---------------
import java.net.InetAddress;
import java.net.UnknownHostException;
/**
 * ProvaLocalHost.java
 *
 *
 * Created: Thu Nov 09 08:58:54 2000
 *
 * @author Gian Uberto Lauri
 * @version
 */
public class ProvaLocalHost  {
 
    public static void main(String args[])
    throws UnknownHostException
    {
        InetAddress a = InetAddress.getLocalHost();
        System.out.println(InetAddress.getLocalHost().getHostAddress());
        System.out.println(a.getHostAddress());
    } // ProvaLocalHost
 
}
//----------------------------------8<---[snip snip]---------------
Errori che ho riscontrato nei consigli :
	Socket.getInetAddress() torna l'InetAddress del server remoto
		(si dovrebbe usare getLocalAddress() ) e probabilmente
		se non sei connesso becchi un bel 0.0.0.0
	Usare winipcfg : C'è solo su Window 9x (sul mio NT workstation
			non lo ho trovato), non è molto portabile
			(vero che ha analoghi sotto Unix/Linux -
			ifconfig, ipconfig) ma l'output non ha lo stesso
			formato. E poi è (a parer mio) ORRIDA.
	I ServerSocket vanno creati col costruttore
		public ServerSocket(int port,
                    int backlog,
                    InetAddress bindAddr)
	perché se no sono unbound e 
		ServerSocket a = ServerSocket(666);
		System.out.println(a.getHostAddress());
	torna 0.0.0.0
Nota folkloristica : 
	Mi sono letto la documentazione per la prima volta ed ho fatto
	gli esperimenti in una mezzoretta incuriosito dal thread. 
	Di logname faccio  saint, non god: come ci  son riuscito io ci
	può riuscir chiunque. RTFM
\begin{avviso}
 
Attenzione: Leggersi lo header riguardo al mio e-mail!
Warning: read header for infos about my e-mail.
\end{avviso}
+----------------------------------------------------------------+
| Gian Uberto Lauri * "So, are you working on fixing that bug    |
| 
sa...@eng.it
      *  *now* or leaving it until later ?" - YES  |
+----------------------------------------------------------------+




il metodo getLocalAddress() della classe Socket serve a questo
-- 
Dr. Ugo Gagliardelli, Modena, Italy
Spaccamaroni andate a cagare/Spammers not welcome

Devi chiamare la classe statica:
InetAddress.getLocalHost().getHostAddress();
NON chiamare server.inetAddres... perchè non serve.
Mauro ha scritto:
