|
@@ -21,27 +21,30 @@
|
|
|
|
|
|
|
|
// Filtre les IP authorisés à accéder au site
|
|
// Filtre les IP authorisés à accéder au site
|
|
|
|
|
|
|
|
- if(!is_null(WHITE_IP)){
|
|
|
|
|
-
|
|
|
|
|
- function getUserIP() {
|
|
|
|
|
- // Vérifie si l'adresse IP est disponible dans les en-têtes HTTP
|
|
|
|
|
- if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
|
|
|
|
|
- // Vérifie si l'IP est passée par un proxy
|
|
|
|
|
- $ip = $_SERVER['HTTP_CLIENT_IP'];
|
|
|
|
|
- } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
|
|
|
|
- // Vérifie si l'IP est passée par un autre proxy
|
|
|
|
|
- $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
|
|
|
|
|
- } else {
|
|
|
|
|
- // Sinon, utilise l'adresse IP directement
|
|
|
|
|
- $ip = $_SERVER['REMOTE_ADDR'];
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- return $ip;
|
|
|
|
|
|
|
+ function getUserIP() {
|
|
|
|
|
+ $ip = 'Inconnu';
|
|
|
|
|
+
|
|
|
|
|
+ if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
|
|
|
|
|
+ // IP partagée par un proxy
|
|
|
|
|
+ $ip = $_SERVER['HTTP_CLIENT_IP'];
|
|
|
|
|
+ } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
|
|
|
|
+ // IP du client derrière un proxy
|
|
|
|
|
+ $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // IP du client directement connectée au serveur
|
|
|
|
|
+ $ip = $_SERVER['REMOTE_ADDR'];
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ // Nettoyage des IPs multiples dans le cas de 'HTTP_X_FORWARDED_FOR'
|
|
|
|
|
+ if (strpos($ip, ',') !== false) {
|
|
|
|
|
+ $ip = explode(',', $ip)[0];
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return $ip;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- echo "Votre adresse IP est : " . $userIP;
|
|
|
|
|
-
|
|
|
|
|
- if(!in_array(getUserIP(), WHITE_IP)){
|
|
|
|
|
|
|
+ if(!is_null(WHITE_IP)){
|
|
|
|
|
+ if(!in_array(htmlspecialchars(getUserIP()), WHITE_IP)){
|
|
|
header('HTTP/1.0 401 Unauthorized');
|
|
header('HTTP/1.0 401 Unauthorized');
|
|
|
header('Content-Type: text/html; charset=utf-8');
|
|
header('Content-Type: text/html; charset=utf-8');
|
|
|
echo ' <!DOCTYPE html>
|
|
echo ' <!DOCTYPE html>
|