Géolocalisation à partir d'une adresse IP

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

Blackphoenix
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 2
Enregistré le: 8 Mai 2005

Message le Dim Mai 08, 2005 17:25

Regardé si ça c'est pas de la précision !!!
http://www.studyrama.com/pubs/exemples/ ... sation.php

Franchement trop fort !! :D

Blackphoenix
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 2
Enregistré le: 8 Mai 2005

Message le Dim Mai 08, 2005 17:30

Regardez un peu la précision !!!!! :D
Malheureusement , c'est inutilisable ....

cr500
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 322
Enregistré le: 13 Oct 2004

Message le Dim Mai 08, 2005 19:35

Blackphoenix a écrit:Regardez un peu la précision !!!!! :D
Malheureusement , c'est inutilisable ....



ta raison surtt qu on peu meme pas choisir ladresse ip

worldcorp
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 1
Enregistré le: 18 Aoû 2005

Adresses de Whois

Message le Jeu Aoû 18, 2005 14:17

je ne sais pas si cela peur étayer la discussion, mais, nous autres, pauvres utilisateurs de Mac, avons l'utilitaire de réseau, petite app. incluant Traceroute, Net Stat ... et tout ce que vous pouvez imaginez...
J'en arrive donc au adresses fournis par Apple pour le Whois:
-whois.nic.ad.jp
-whois.apnic.net
-whois.ripe.net
-whois.nic.mil
-whois.arin.net
-whois.internic.net
-whois.networksolutions.com
En espérant vous avoir aidé, je reste à votre entière disposition...

simpson
WRInaute discret
WRInaute discret
 
Messages: 70
Enregistré le: 11 Juil 2003

Message le Ven Aoû 19, 2005 12:17

J'ai un petit script qui me sert à identifier les IP des petits rigolos qui tentent de hacker nos serveurs et ceux de nos clients :

http://www.outils-web.2-aaz.com/

C'est pas parfait mais utile !
Vos avis sont les bienvenus ...

asnierois
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 27
Enregistré le: 16 Mai 2004

Message le Mer Aoû 31, 2005 14:20

Bonjour,

Je suis preneur d'un tel script http://www.outils-web.2-aaz.com/
Est-ce possible ?
Il va de soit que toute référence à l'auteur et à son site seraient et seront mentionnées.

Merci


Cendrillon
WRInaute accro
WRInaute accro
 
Messages: 4940
Enregistré le: 17 Aoû 2004

Message le Mer Aoû 31, 2005 14:51

Blackphoenix a écrit:Regardé si ça c'est pas de la précision !!!
http://www.studyrama.com/pubs/exemples/ ... sation.php

Franchement trop fort !! :D

pour info, c'est le site de notre camarade Philippe Yonnet (alias Cariboo) ... :wink:
si vous avez besoin d'info, demandez le lui directement ... il vous répondra peut être ... :wink:

Bourriquet
WRInaute impliqué
WRInaute impliqué
 
Messages: 637
Enregistré le: 19 Sep 2005

Message le Mer Déc 07, 2005 13:34

Je reviens sur l'interrogation directe par whois. Le plus simple est de faire un whois direct sur l'arin, qui va donner le champ 'ReferralServer'.

Il suffit simplement ensuite d'interroger le serveur se trouvant sous ce champ et là on arrive à avoir le bon serveur whois direct, avec les bonnes informations (code pays, provider).

J'avais fait un petit bout de code à ce niveau là, voici une petite démo :
http://phptrust.org/test-ip.php

C'est à optimiser, je vais bientôt m'y repencher dessus :)

uado
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 41
Enregistré le: 27 Nov 2005

Message le Mar Avr 11, 2006 0:16

Tu en es où de ton bout de code ? :lol:

Bourriquet
WRInaute impliqué
WRInaute impliqué
 
Messages: 637
Enregistré le: 19 Sep 2005

Message le Mar Avr 11, 2006 1:13

Huhu, pour le moment j'ai pas retouché à ça, je le ferai d'ici quelques jours, je suis sur un autre projet pour le moment ;)

Mais la technique est pas très compliquée. Voilà la fonction pour ceux que ça intéresse (pas optimisée, pas commentée => pas bien mais bon ;) ) :

Code: Tout sélectionner
function Whois($prmIp,$prmReturn = false) {
   $host = "whois.arin.net" ;
   $first = true ;
   $end = true ;
   do {
      $test = new SocketTCP($host,"43") ;
      $test->Connecter() ;
      if (!$prmReturn) echo "<i style='color:green;'>Connexion à $test->host ... </i><br><a style='color:green;'>Connecté à ".date("H:i:s")." ! </a>" ;
      if (!$first) $test->Recevoir() ;
      $first = false ;
      $test->Envoyer($prmIp."\r\n") ;
      $prout = $test->RecevoirParPacket(8192) ;
      if (!$prmReturn) echo "<br><a style='color:blue;'>Lancement de la requête... Ok !</a><br>" ;
      if ($pos = strpos($prout,"ReferralServer:")) {
         $host = substr($prout,($pos+24),(strpos($prout,"\n",$pos+22) - ($pos+24))) ;
         if (strpos($host,":")) {
            $pouet = explode(":",$host) ;
            $host = $pouet[0] ;
            
         }
         $end = false ;
         if (!$prmReturn) echo "<a style='color:red;'>$prmIp n'est pas connue de ce serveur.</a>" ;   
      }

      else {
         if (!$prmReturn) echo "<a style='color:blue;'>Réception des informations relatives à $prmIp en cours ... Ok !</a><br><br>" ;
         
         $pouet = $prout ;
         while ($prout = $test->RecevoirParPacket(8192)) {
            $pouet .= $prout ;
         }
         $end = true ;

         $pouet = str_replace("\n","<br>",$pouet) ;
         $pouet = str_replace("country:","Pays:",$pouet) ;
         $pouet = str_replace("remarks:","Remarques:",$pouet) ;
         $pouet = str_replace("address:","Adresse:",$pouet) ;
         $pouet = str_replace("Route:","Route:",$pouet) ;
         $pouet = str_replace("origin:","Origine:",$pouet) ;
         $pouet = str_replace("descr:","Description:",$pouet) ;
         $pouet = str_replace("status:","Etat:",$pouet) ;
         $pouet = str_replace("ASIGNED","Attribuée",$pouet) ;
         $pouet = str_replace("role:","Rôle:",$pouet) ;
         $pouet = str_replace("source:","Source:",$pouet) ;
         $pouet = str_replace("route:","Route:",$pouet) ;
         $pouet = str_replace("changed:","Changé:",$pouet) ;
         $pouet = str_replace("e-mail:","E-mail:",$pouet) ;
         
         if ($prmReturn) {
            $test->Deconnecter() ;
            return $pouet ;
         }
         else echo $pouet ;
      }
      if (!$prmReturn) echo "<br><a style='color:red;'>Déconnecté !</a><br><br>" ;
      $test->Deconnecter() ;
   } while (!$end) ;
}


Pour la classe SocketTCP, de ma composition, c'est ça :
Code: Tout sélectionner
class SocketTCP {
   var $SocketId ;

   var $buffer ;
   var $dataBuffer ;
   var $flagOk ;
   var $lastError ;
   var $connecte ;
   var $nbOctetEnvoye ;
   var $nbOctetRecu ;

   var $port ;
   var $host ;
   var $ip ;

   function SocketTCP($prmAdresse,$prmPort,$prmTimeLimit=30) {
      set_time_limit($prmTimeLimit) ;
      $this->host = $prmAdresse ;
      $this->port = $prmPort ;
      $this->connecte = false ;
      $this->flagOk = true ;
   }

   function ChangeAdresse($prmAdresse) {
      $this->host = $prmAdresse ;
   }

   function Connecter() {
      if ($this->flagOk) {
         $this->SocketId = fsockopen($this->host,$this->port) ;
         if ($this->SocketId == false ) {
            $this->flagOk = false ;
            $this->connecte = false ;
         }
         else {
            $this->flagOk = true ;
            $this->connecte = true ;
         }
         return $this->connecte ;
      }
      else {
         $this->connecte = false ;
         return false ;
      }

   }

   function Deconnecter() {
      if ($this->connecte) {
         fclose($this->SocketId) ;
         return true ;
      }
      else return false ;
   }

   function Envoyer($prmMessage) {
      if ($this->connecte) {         
         $this->buffer = fwrite($this->SocketId,$prmMessage) ;
         if ($this->buffer == false ) {
            return false ;
         }   
         else {
            $this->nbOctetEnvoye += $this->buffer ;
            return true ;
         }
      }
   }

   function RecevoirParPacket($prmPacketSize = 2048)  {
      if ($this->connecte) {
         $this->dataBuffer = "" ;
         $this->dataBuffer = fread($this->SocketId,$prmPacketSize) ;
         return $this->dataBuffer ;
      }
      else return false ;

   }

   function Recevoir() {
      if ($this->connecte) {
         $full_text = "" ;
         do {
            $data = "" ;
            $data = $this->RecevoirParPacket(2048);
            $full_text .= $data ;
         } while ($data != 0) ;
         return $full_text ;
      }
      
      else return false ;
   }
   
} ;


Pas optimisées et commentée non plus :)

narayana
WRInaute impliqué
WRInaute impliqué
 
Messages: 835
Enregistré le: 28 Jan 2005

Message le Mer Mai 23, 2007 9:41

Sujet très intéressant.
Je fais des recherches pour obtenir seulement la région française de l'internaute. Et seulement les régions françaises.
J'ai testé les divers web services actuels sans trop de résultats. Peut être que quelqu'un à plus d'informations à ce jour.

Kwaelbi
WRInaute impliqué
WRInaute impliqué
 
Messages: 883
Enregistré le: 13 Nov 2004

Message le Mer Mai 23, 2007 15:50

narayana a écrit:Sujet très intéressant.
Je fais des recherches pour obtenir seulement la région française de l'internaute. Et seulement les régions françaises.
J'ai testé les divers web services actuels sans trop de résultats. Peut être que quelqu'un à plus d'informations à ce jour.


+1 je veux filtrer les visiteurs PACA et IDF pour un annonceur mais je ne trouve pas


hervedidier
WRInaute impliqué
WRInaute impliqué
 
Messages: 585
Enregistré le: 28 Juin 2002

Message le Mer Mai 23, 2007 23:02

Peut-etre une piste qui pourrait aider : je crois que OpenAds (ex-phpAdsnew) possède un module permettant la géolocalisation. Mais je n'ai pas testé personnellement pour savoir si les "area code targetting" et "city targetting" marchent en dehors des US.

http://www.openads.org/products/geotargeting.html

narayana
WRInaute impliqué
WRInaute impliqué
 
Messages: 835
Enregistré le: 28 Jan 2005

Message le Dim Mai 27, 2007 12:07

hervedidier a écrit:Peut-etre une piste qui pourrait aider : je crois que OpenAds (ex-phpAdsnew) possède un module permettant la géolocalisation. Mais je n'ai pas testé personnellement pour savoir si les "area code targetting" et "city targetting" marchent en dehors des US.

http://www.openads.org/products/geotargeting.html


En effet, mais pour prendre simplement cette partie du code et pouvoir l'exploiter par la suite, c'est pas du gâteau :evil:

impossible de trouver ce ... de fichier GeoIPRegion.dat

narayana
WRInaute impliqué
WRInaute impliqué
 
Messages: 835
Enregistré le: 28 Jan 2005

Message le Dim Mai 27, 2007 13:26

réglé

ybet
WRInaute accro
WRInaute accro
 
Messages: 8825
Enregistré le: 22 Nov 2003

Message le Dim Avr 27, 2008 10:49


narayana
WRInaute impliqué
WRInaute impliqué
 
Messages: 835
Enregistré le: 28 Jan 2005

Message le Mer Juil 16, 2008 15:07

ybet dis nous ce que cela vaut comparer à maxmind :wink:

mijsoot
WRInaute discret
WRInaute discret
 
Messages: 53
Enregistré le: 12 Oct 2005

Message le Mar Oct 21, 2008 16:48

Bonjour,

Si cela intéresse encore quelqu'un, on a fait un outil en ligne et à distance (pour le moment seulement avec du file_get_contents, donc avec allow_url_fopen = On) : http://www.geolocalise-ip.com/

C'est basé sur la base de données de Maxmind, notre base de données est mise à jour tous les 5 du mois.
Bientôt nous prendrons en compte toutes les villes du monde puisque Geonames founit une base de données sur quasiement toutes les villes du monde (Maxmind l'utilise en partie).

Voilà, il n'y aucune prétention sur le site, on a eue besoin de cet outil pour nos sites e-commerce et on s'est dit que cela serait pas mal d'en faire profiter d'autres :lol:
Par contre pour le moment on a bridé l'intérogation à distance à 50 requêtes par jour.

N'hésitez pas si vous avez des questions, par contre cet outil n'est pas un exploit technique puisque finalement on ne fait qu'utiliser des BDD, mais c'est très long à expliquer, donc ne me demandez pas de vous expliquer ce qu'il a derière on a déjà un petit peu essayé sur le blog.

A +


Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

  • Analyser la classe C de l'adresse IP
    Cet outil vous permet de vérifier si plusieurs sites sont hébergés sur la même classe C (adresse IP du serveur).
  • Stratégies de mots-clés
    Cet outil vous permet de créer à partir de quelques mots-clés une liste d'expressions constituées des mots pris dans tous les ordres possibles. Il sert aux analyses de positionnement et achats de mots-clés.