janusutopia ha scritto:
Innanzitutto, come faccio in java per ottenere l'indirizzo IP ESTERNO (quello tramite cui accedere al di fuori della rete) di un qualsiasi elaboratore? Non ho visto nulla di simile a prima vista nella classe InetAddress.
Ci sono svariati modi per connettersi ad internet, che vanno dai vecchi modem analogici 56k fino a router ADSL, fibra ottica, oppure connessioni satellitari o reti aziendali dove il dipendente/utente magari non sa nemmeno come avviene la connessione ad internet o attraverso quali/quanti dispositivi o macchine.
Un caso particolare sono i modem analogici, dove la connessione remota creata nel sistema "sa" quale è il IP pubblico assegnato, perché la connessione è diretta.
In praticamente quasi tutti gli altri scenari, la tua macchina
non sa quale è il IP pubblico assegnato dal provider. Al limite lo sa un router ADSL, ad esempio, ma non il tuo PC.
Quindi in generale e in linea di massima, NON esiste un modo, funzione, API (né nativa, né Java o altro) per sapere il IP pubblico su internet. Solo un host su internet a cui ti connetti sa quale è il IP remoto ovvero il tuo pubblico su internet.
E poi comunque sapere il IP pubblico ti serve solo se volessi comunicarlo ad altri affinché possano connettersi verso di te. Ma se sfrutti un servizio di DDNS, neanche questo ti serve.
janusutopia ha scritto:
In secondo luogo, come si utilizzano i messaggi di Multicast con questa nuova ottica che comprende anche le connessioni in internet e non solo in locale?
Non me ne intendo a questo livello ma credo non sia possibile a meno di scenari ben precisi in cui però ci deve essere il supporto dei provider e/o dispositivi coinvolti.
In linea di massima: dimentica il multicast su internet.
P.S. cerca in rete, l'argomento è sicuramente già discusso.