summaryrefslogtreecommitdiff
path: root/maj/index.php
blob: f9ed1436f612259b2618d4af84ed95815e783553 (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
<?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>
<?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>Erreur&nbsp;: L'adresse publique $ip4pub n'est pas reconnue</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";
?>
<div>
<form id="form_main" method="POST" action="<?=$action?>" style="width: 33em">
	<fieldset>
	<legend>Paramètres du réseau WiFi de maison</legend>
		<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&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="16" value="13" 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) à 16 dBm (39 mW), hors gain d'antenne." name="txpower">
			<table><tr><td style="width:8em">Désactivé</td><td style="width:9em;">Moyen</td><td>Fort</td></table>
		</span>
	</fieldset>
	<fieldset>
	<legend>Administration du routeur</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>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>
	<div class="fieldset">
		<div class="label"><a href="doc.html" target="_blank">Consulter la procédure à suivre</a></div>
		<span><input id="btn_gen" type="submit" value="Valider et télécharger la mise à jour"></span>
	</div>
	<div style="margin-top:1em;">
		<ul style="padding-left:2em; margin-top:0;">
			<li>Utilisez ce formulaire depuis votre propre connexion internet CHD&nbsp;;</li>
			<li>Réutilisez les anciens paramètres WiFi si vous souhaitez éviter de devoir retapper le mot de passe sur vos équipements WiFi&nbsp;;</li>
			<li>Changez le mot de passe d'administration (initialement&nbsp;: <tt>admin</tt>)&nbsp;;</li>
		</ul>
	</div>
</form>
</div>
</body>
</html>