Petite fonction utile :

La fonction ci-dessous permet d'offrir le service maxmind tout en filtrant les paramètres LICENCEKEY et IPFIXE.

1) - La fonction ci-dessous est déposée sur un serveur, par exemple dans un fichier « inc.functions.php ».
2) - Un autre fichier « CodeAInclude.php » est déposé sur le serveur du client et contient le code suivant :
Code :Sélectionner tout -Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
<?
 $IPS_ADDR = $_SERVER["SERVER_ADDR"];
 $IP_ADDR  = $_SERVER["REMOTE_ADDR"];
 include 'http://00.000.00.00/clients/NomDuClient.php?ip='.$IP_ADDR.'&ips='.$IPS_ADDR;
?>

Et le fichier « NomDuClient.php » appelé depuis le serveur du client via le premier serveur, contient donc le code suivant :
Code :Sélectionner tout -Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
<?
 include 'inc.function.php';
 // Licence MaxMind + Adresse ip-serveur autorisée
 echo getGeoLoMXMind('LICENCEKEY','00.000.00.00');
?>


Cela retournera donc la géolocalisation de l'internaute qui navigue sur le site du client tout en filtrant les paramètres privés LICENCEKEY et IPFIXE.

Fonction:

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
 
   /* ===== Retourne les coordonnées de Géo-localisation ===== */
   function getGEOLocMXMind($LICENSE_KEY,$FILTER_IP)
   {
     /* Principe :
        ==========
        Retourne une géo-localisation du client connecté, cette fonction filtre l'utilisation externe
        ---------------------------------------------------------------------------------------------
        => Code à mettre dans un fichier représentant le nom du client, exemple : NomDuClient.php
        ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
        include 'inc.function.php';
        // Licence MaxMind + Adresse IP-Serveur du client à filtrer
        echo getGEOLocMXMind('LICENCEKEY','00.000.00.00');
        ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
        => Code à mettre dans la page hébergée sur le serveur du client
        ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
        $IPS_ADDR = $_SERVER["SERVER_ADDR"];
        $IP_ADDR  = $_SERVER["REMOTE_ADDR"];
        include 'http://00.000.00.00/clients/NomDuClient.php?ip='.$IP_ADDR.'&ips='.$IPS_ADDR;
        ---------------------------------------------------------------------------------------------
        Paramètrage de la fonction :
        ============================
        $LICENSE_KEY ==> Représente la « licence MaxMind »
        $FILTER_IP   ==> Représente l'adress-ip du serveur du client
     */
     # Retourne l'IP-Serveur du client
     $SERVER_IP_ADDRESS = $_GET["ips"];
     echo $SERVER_IP_ADDRESS;
     $error = '<font color="red">ERREUR FOURNISSEUR</font>';
     # Filtre l'utilisation
     if ($SERVER_IP_ADDRESS==$FILTER_IP) {
       $IP_ADDRESS = $_GET["ip"];
       $query = "<a href="http://geoip1.maxmind.com/b?l" target="_blank">http://geoip1.maxmind.com/b?l</a>=" . $LICENSE_KEY . "&i=" . $IP_ADDRESS;
       $url = parse_url($query);
       $host = $url["host"];
       $path = $url["path"] . "?" . $url["query"];
       $timeout = 1;
       $fp = fsockopen ($host, 80, $errno, $errstr, $timeout) or die($error);
       if ($fp) {
         fputs ($fp, "GET $path HTTP/1.0\nHost: " . $host . "\n\n");
         while (!feof($fp)) {
           $buf .= fgets($fp, 128);
         }
         $lines = split("\n", $buf);
         $data = $lines[count($lines)-1];
         fclose($fp);
       }
       $geo = explode(",",$data);
       $country = $geo[0];
       $state = $geo[1];
       $city = $geo[2];
       $lat = $geo[3];
       $lon = $geo[4];
       return '<b>'.$IP_ADDRESS.' <img src="connect.gif" align="center"></b> '.$data;
     }
     else {
       return $error;
     }
     // Exemple => echo getGeoLoMXMind('LICENCEKEY','00.000.00.00');
   }