Aggiornamento DNS da Java (simile a DUC NO - IP). [Era: Actualizar DNS desde Java (Simile a DUC No-Ip)]


Giorni fa provo a fare un'applicazione simile a No-IP DUC (Dynamic DNS Update Clients) in java ma ho presentato un problema e non come risolvere ... Ora posso recuperare i domini che ho registrato con la seguente riga di codice:

URLConnection conexion = new URL( "http://dynupdate.no-ip.com/list-hosts.php?email="+USER+"&pass="+PASSWORD ).openConnection();

Ma quando aggiorno con il seguente URL si consiglia a pagina http://www.no-ip.com/integrate/request , ottengo un'eccezione ...

URLConnection conexion = new URL( "http://"+USER+":"+PASSWORD+"@dynupdate.no-ip.com/nic/update?hostname="+DOMAIN+"&myip="+IP ).openConnection();

La cosa strana è che copiare manualmente l'URL nell'indirizzo, l'aggiornamento è fatto senza problemi ... Se qualcuno può aiutarmi lo apprezzo molto ...

Author: Tom, 2012-05-27

1 answers

Beh, ho affrontato anche questa situazione. Scoperto il motivo di questo errore è che stiamo usando un indirizzo email per il nome utente. Il " @ " presente al suo interno è in conflitto con l'URL risultante. Prova a utilizzare URLEncode per codificare il nome utente e la parte della password.

String username = URLEncoder.encode("[email protected]", "UTF-8");
String password = URLEncoder.encode("password", "UTF-8");
URL url = new URL( "http://"+username+":"+password+"@dynupdate.no-ip.com/nic/update?hostname="+hostname+"&myip="+ip);           
URLConnection urlConnection = url.openConnection();
 1
Author: Konoha, 2012-12-15 07:15:42