source: spip-zone/_plugins_/environnement/env_options.php @ 117558

Last change on this file since 117558 was 20176, checked in by listes@…, 12 years ago

Permet d'ajouter un caractère joker dans les adresses IP

File size: 1.6 KB
Line 
1<?php
2
3        // on regarde le provenance de l'utilisateur
4        // S'il n'est pas autorisé, on le redirige vers une autre URL !!!
5       
6        //print_r($_SERVER);
7       
8        $addressC = $_SERVER['REMOTE_ADDR'];
9        //echo 'address remote : ', $addressC,'<br>';
10       
11        $adressipsConf = lire_config('env/addressip');
12        $addressips = explode(',', $adressipsConf);
13       
14        $redirection = lire_config('env/redirection');
15       
16        $find = matchAddress($addressips,$addressC);
17       
18        $environnement = lire_config('env/environnement');
19       
20       
21       
22        if ($environnement != 'NON') {
23       
24                if (! $find && $environnement != 'PROD') {
25                        header('Location:'.$redirection);
26                } else if ( $environnement == 'PROD') {
27                        // on interdit donc certainnes adresses
28                        $banniesipConf = lire_config('env/banniesip');
29                        $banniesips = explode(',', $banniesipConf);
30                       
31                        if (matchAddress($banniesips,$addressC)) {
32                                header('Location:'.$redirection);
33                        }
34                }
35        }
36       
37       
38       
39        function matchAddress($addressips,$addressC) {
40       
41                foreach ($addressips as $cle => $valeur) {
42                        //echo $valeur,'  ',$addressC,'<br>';
43                        if (trim($valeur) == trim($addressC)) {
44                                // on a trouve l'adresse, on ne fait rien
45                                return true;
46                        }
47                       
48                        // on regarde si l'adresse IP contientun caractère Joker (dans notre cas x)
49                        //echo "l'adresse : ", $valeur;
50                        if (strripos($valeur, 'x')) {
51                                // on a trouvé un caractère joker.
52                                $pattern = "^".str_ireplace('x', '[0-9]*', $valeur)."$";
53                                //echo "<br/>the pattern : ", $pattern, " avec value : ", $addressC;
54                               
55                                if (eregi($pattern,$addressC, $regs)) {
56                                        // la regexp matche l'adresse, on ne fait rien
57                                        return true;
58                                }
59                        }
60                }
61                return false;
62        }
63?>
Note: See TracBrowser for help on using the repository browser.