Bonsoir, je code un petit programme batch en java pour mettre à jour entre autre mon ip quand il change.
J'ai eu beau me prendre la tête, rien à faire : le programme marche, mais dès qu'il doit mettre à jour la dns, quoi qu'il arrive il reboucle toujours sur "DNS obsolète". J'ai remarqué que si je fais stop->start MANUELEMENT, il remarche normalement.
MAis par contre, si je fais la meme chose directement dans le programme stop_service(); start_service();, ca ne marche pas...
Le problème est qu'une fois que la dns n'est plus valable, l'url lourl.exec_URL("url de mon site qui mets etat_DNS à true"); renvoie toujours false...
Franchement je suis entrain de devenir fous, quelque chose m'échappe mais je ne vois pas quoi...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 private Timer createTimer (){ // Création d'une instance de listener // associée au timer ActionListener action = new ActionListener (){ // Méthode appelée à chaque tic du timer public void actionPerformed (ActionEvent event){ //vérification DNS obsolète //suppression sessions expirées //affichage console try{ sqlq.set_row("etat_dns",false); lsj_open_url lourl = new lsj_open_url(); //test connexion internet //si pas de connexion, on ne peut mettre à jour la DNS if(lourl.exec_URL("http://www.google.fr")){ //puis test DNS //on tente d'ecrire la table par l'url web //si DNS obsolète, la table ne sera pas écrite lourl.exec_URL("url de mon site qui mets etat_DNS à true"); if(sqlq.get_row("etat_dns")){ delete_last_line(".....DNS à jour\n"); state += t.get_time_string() + ".....DNS à jour\n"; } else{ delete_last_line(".....DNS obsolète\n"); state += t.get_time_string() + ".....DNS obsolète\n"; if(lourl.exec_URL(url du fournisseur de domaine pour mettre à jour mon ip)){ state += t.get_time_string() + ".....Mise à jour DNS réussie\n"; /* stop_service(); start_service();*/ } else{ state += t.get_time_string() + ".....Mise à jour DNS échouée\n"; } pt = ""; } } else{ delete_last_line(".....Connexion internet perdue\n"); state += t.get_time_string() + ".....Connexion internet perdue\n"; } //toutes les 20 minutes, on met à jour les sessions users //(sessions de 20 min) cmpt++; if(cmpt == 12*20){ cmpt = 0; if(sqlq.maj_table_auth()){ sqlq.set_row("etat_user",true); state += t.get_time_string() + ".....Mise à jour USER réussie\n"; } else{ sqlq.set_row("etat_user",false); state += t.get_time_string() + ".....Mise à jour USER échouée\n"; } pt = ""; } if(pt.length() == 10) pt = ""; else pt += "|"; jTextArea.setText(state + pt); repaint(); lourl = null; } catch(Exception e){ e.printStackTrace(); } } }; return new Timer(1000*5, action); }Est-ce que vous avez une idée??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 import java.io.*; import java.net.URL; import java.net.URLConnection; public class lsj_open_url { public boolean exec_URL(String url) { URLConnection urlConnection; InputStream httpStream; try{ URL fileURL = new URL(url); urlConnection = fileURL.openConnection(); // open URL (HTTP query) httpStream = urlConnection.getInputStream(); // Open data stream return true; } catch(java.net.MalformedURLException ex){ return false; } catch(java.io.IOException ex){ return false; } } }
Merci d'avance.
Partager