IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez / Téléchargez Sources et Outils PHP Discussion :

Intégrer la géolocalisation à Apache 2 sous Linux


Sujet :

Contribuez / Téléchargez Sources et Outils PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 264
    Points : 141
    Points
    141
    Par défaut Intégrer la géolocalisation à Apache 2 sous Linux
    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');
       }
    Images attachées Images attachées  

Discussions similaires

  1. Réponses: 16
    Dernier message: 10/11/2009, 10h32
  2. Réponses: 1
    Dernier message: 10/02/2009, 14h53
  3. Réponses: 6
    Dernier message: 23/04/2008, 21h57
  4. Sécuriser son serveur Apache sous Linux
    Par rolkA dans le forum Sécurité
    Réponses: 6
    Dernier message: 01/12/2003, 16h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo