summaryrefslogtreecommitdiff
path: root/maj/index.php
blob: fd634a1f9fb91f9fef233ad2bf617ec6c81dc9d0 (plain)
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
<?php
/**
 *  Copyright 2016 Ludovic Pouzenc <ludovic@pouzenc.fr>
 * 
 *  CHD OpenWRT is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 * 
 *  CHD OpenWRT is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 * 
 *  You should have received a copy of the GNU General Public License
 *  along with CHD OpenWRT.  If not, see <http://www.gnu.org/licenses/>.
**/

require_once('config.php');
?>
<!DOCTYPE html>
<html lang="fr">
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=620">
	<title>Mise à jour du routeur</title>
	<link rel="stylesheet" href="main.css">
</head>
<body>
<!-- Local IP detection tricks via WebRTC and iframe
<iframe id="iframe" sandbox="allow-same-origin" style="display: none"></iframe>-->
<script src="main.js"></script>
<script src="jquery-3.2.1.min.js"></script>

<script>
$( document ).ready(function() {

	var last_pwd = $('#field_pwd1').val();
	$('#field_key1').keypress(function(){ update_pwd_if_not_set(); });
	$('#field_key1').keyup(function(){ update_pwd_if_not_set(); });

	function update_pwd_if_not_set(){
		if( $('#field_pwd1').val() == '' || $('#field_pwd1').val() == last_pwd ){
			$('#field_pwd1').val($('#field_key1').val());
			$('#field_pwd2').val($('#field_key1').val());
			last_pwd = $('#field_pwd1').val();
		}
	}

	$('#link_rt').attr('href', 'http://'+$('#field_ip4lan').val());
});
</script>

<h1>Mise à jour de votre routeur (box)</h1>
<?php
	//FIXME : support IPv6 also
	if ( array_key_exists('ip', $_GET) ) {
		$ip4pub=$_GET['ip'];
	} else {
		$ip4pub=$_SERVER['REMOTE_ADDR'];
	}

	if ( preg_match('/^185\.131\.4[01]\.[0-9]{1,3}$/', $ip4pub)!==1 ) {
		echo "<div>L'adresse IP $ip4pub n'est pas reconnue.<br />La mise à jour doit obligatoirement être réalisée depuis votre connexion Comminges Haut Débit.</div></body></html>\n";
		exit();
	}

	$rest = file_get_contents($CONF_API_BASE_URL . "/gen_firm.php?ip4pub=".urlencode($ip4pub), false, NULL, 0, 256);
	if ( $rest === FALSE ) {
		echo "<div>Erreur&nbsp;: Pb webservice</div></body></html>\n";
		exit();
	}

	$result = json_decode($rest);
	if ( !array_key_exists("initiales", $result) ) {
		echo "<div>Erreur&nbsp;: Pb retour webservice</div></body></html>\n";
		exit();
	}
	$ip4wan = $result->ip4wan;
	$ip6prefix = $result->ip6prefix;
	$constructeur = $result->constructeur;
	$modele = $result->modele;
	$profile = $result->profile;
	$revision = $result->revision;
	$adt_initiales = $result->initiales;

	$action=array_key_exists('dev', $_GET)?"gen-dev.php":"gen.php";
?>

<h2>Étape n°1 : Générer mon fichier de mise à jour</h2>
<div>
<form id="form_main" method="POST" action="<?=$action?>" style="width: 33em">
	<fieldset>


	<legend>Paramètrage simplifié</legend>

		<label>Modèle du routeur&nbsp;:</label>
		<span>
			<?=$constructeur . " " . $modele."\n"?>
			<input name="profile" type="hidden" value="<?=$profile?>">
			<input name="revision" type="hidden" value="<?=$revision?>">
		</span>
		<label>Nom du réseau (SSID)&nbsp;:</label>
		<span>
			<input id="field_ssid" size="24" title="Le nom du réseau peut contenir des lettres, des nombres, des occurences de '.' (point), '-' (tiret) ou '_' (underscore). Maximum de 32 caractères." type="text" required pattern="[\w\._-]{1,32}" name="ssid" value="<?=$adt_initiales?>_CommingesHautDebit.net">
		</span>
		<label>Mot de passe Wifi désiré&nbsp;:</label>
		<span>
			<input id="field_key1" size="24" title="Le mot de passe doit être composé de 8 à 63 caractères, devrait inclure des majuscules et des minuscules, des nombres ou des caractères spéciaux" type="password" required pattern="^[^']{8,64}$" name="key1">
		</span>

		<label>Confirmation mot de passe&nbsp;:</label> 
		<span>
			<input id="field_key2" size="24" title="Merci de saisir le même mot de passe que dans le champ précédent" type="password" required name="key2">
		</span>
		<label>Puissance d'émission WiFi&nbsp;:</label> 
		<span>
			<input id="field_txpower" style="width: 14.8em;" type="range" min="-1" max="18" value="17" title="Merci de choisir la puissance d'émission du WiFi à l'intérieur de l'habitat.&#10;L'échelle va de 0 dBm (1 mW) à 18 dBm (63 mW)" name="txpower">
			<table><tr><td style="width:8em">Désactivé</td><td style="width:9em;">Moyen</td><td>Fort</td></table>
		</span>

		<a href="#" onclick="$('#advanced').slideToggle(); return false;">Afficher les paramètres avancés (facultatif)</a>
	</fieldset>
	<fieldset id="advanced" style="display:none;">
	<legend>Paramètres avancés (facultatif)</legend>

		<label>Adresse IPv4 publique&nbsp;:</label>
		<span>
			<?=$ip4pub?><input name="ip4pub" type="hidden" value="<?=$ip4pub?>">
		</span>
		<label>IPv4 WAN du routeur&nbsp;:</label>
		<span>
			<?=$ip4wan?$ip4wan:'n/a'?><input name="ip4wan" type="hidden" value="<?=$ip4wan?>">
		</span>
		<label>IPv4 LAN du routeur&nbsp;:</label>
		<span>
			<input id="field_ip4lan" size="24" title="L'adresse IP doit respecter le format nnn.nnn.nnn.nnn" type="text" required pattern="((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}$" name="ip4lan" value="192.168.1.1">
		</span>
		<label>Préfixe IPv6 public&nbsp;:</label>
		<span>
			<?=$ip6prefix?><input name="ip6prefix" type="hidden" value="<?=$ip6prefix?>">
		</span>
		<label>Mot de passe du routeur&nbsp;:</label>
		<span>
			<input id="field_pwd1" size="24" title="Le mot de passe doit être composé de 6 à 64 caractères, devrait inclure des majuscules et des minuscules, des nombres ou des caractères spéciaux" type="password" required pattern="^[^']{6,64}$" name="pwd1">
		</span>

		<label>Confirmation mot de passe&nbsp;:</label>
		<span>
			<input id="field_pwd2" size="24" title="Merci de saisir le même mot de passe que dans le champ précédent" type="password" required name="pwd2">
		</span>
	</fieldset>

	<input id="btn_gen" type="submit" value="Valider et télécharger la mise à jour">
</form>

</div>

<p>&nbsp;</p>

<h2>Étape n°2 : Procéder à la mise à jour</h2>

<p>Nous vous conseillons vivement de lire et d'imprimer la <a href="doc.html" target="_blank">procédure complète</a> avant de vous lancer dans la mise à jour de votre routeur (box).</p>

<p>Sinon, si vous êtes à l'aise avec l'informatique et le réseau, vous pouvez suivre les instructions simplifiées ci-dessous :</p>

<ul>
<li>a) Il faut tout d'abord vous connecter sur l'interface de votre routeur (box) en <a href="http://192.168.1.1" id="link_rt">cliquant ici</a>.</li>
<li>b) Votre routeur (box) vous demandera ensuite de saisir un identifiant et un mot de passe. Dans les deux cas il s'agit de <strong>admin</strong>, si vous ne l'avez pas changé.</li>
<li>c) Une fois connecté, cliquez dans le menu de gauche sur <strong>System Tools</strong> puis <strong>Firmware Upgrade</strong>.</li>
<li>d) Sur cette page, cliquez le bouton à droite de <strong>File:</strong> et allez chercher le fichier que vous avez téléchargé à l'étape n°1. Cliquez ensuite sur <strong>Upgrade</strong> pour lancer la mise à jour du routeur.</li>
<li>e) Vous allez normalement voir apparaitre une barre de progression, soyez patients et ne débranchez surtout pas votre routeur durant la mise à jour qui peut durer plusieurs minutes.</li>
</ul>

</body>
</html>