Projet localisation géographique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Projet localisation géographique

re

par supernony » 12 juin 2007, 09:35

Bon apres avoir réfléchi la mise à jour est infesable de façon automatique, car la base de données maxmind n'est pas dézippée directement dans la base de données, mais elle est fortement modifiée avant, le résultat final n'a donc rien en commun avec le csv de départ.
La mise à jour des fichiers automatique est donc infesable (du moins pour mon niveau) il me faudrait donc juste les plages d'adresse ip correspondant aux régions françaises (celles des différents chef lieux serait suffisante) puis je pourrais terminer ce programme ^^
Sur ce bonne journée à tous

par Idaho » 11 juin 2007, 13:09

Pour les pays, la base de ip-to-country.com (gratuite) est plutot satisfaisante je trouve, d'après les quelques tests que j'ai fait.

Effectivement les bases gratuites de maxmind ne sont pas terribles. Celle pour les régions me sort Toulouse au lieu de Lyon... par contre la version payante à l'air pas mal, mais la seule version que j'ai pu obtenir est trop ancienne (2003), il y a beaucoup trop d'ip absentes.

par Mingain » 11 juin 2007, 11:16

J'ai testé le tout premier truc ...
Avec les pays (la bdd gratuite de maxmind). J'ai mis mon ip (localisée Montpellier).

La bdd me dis que je suis en Angleterre ...


Je voullais faire de la géolocalisation de visiteurs pour mon site Internet (Pour savoir d'ou viennent les visiteurs). mais je crois que je vais m'en passer !







Edit ...

Aprés quelques recherches .. un outil pas mal :

http://api.hostip.info/get_html.php?ip=86.202.136.7

Vous fouttez l'ip et ça vous dis ou vous êtes. Suffit de parser la page mais y'a presque rien dedans dons pas dur à faire ! C'est parfait.

Ceci dit, par exemple, avec mon ip ça me met unknow nanani nanana ...

par Sékiltoyai » 08 juin 2007, 12:56

Oui, mais tu ne te rends pas compte à quel point les serveurs SQL sont optimisés.
Quand on dit qu'un serveur SQL, c'est le meilleur moyen de stocker des données, ce ne sont pas des blagues, sur chaque requète, il y a des optimisations pour limiter toute opération superflue, avec par exemple les index, ou encore la mise en cache des requètes, ...

par Mingain » 08 juin 2007, 09:27

Pas bête ^^ Je partais du principe que faire une lecture à chaques fois (+ une écriture au cas ou ... A mon avis les mises à jour sont pas bien faramineuse ...) c'était plus rapide qu'une écriture à chaques fois.

Pour ce qui est de cette "fonctionnalitée" de MySQL > "Connait pas :oops: "

par Sékiltoyai » 07 juin 2007, 22:12

Pour plus d'optimisation, lorsque tu aura parsé et que tu sera en train d'ajouter sur ta bdd, fais une condition qui voit si ce que tu es en train de mettre n'est pas ce qui est déjà présent. ça déchargera un peu l'appli (Sinon vu le nombre de ligne, je te raconte pas le lagg à chaques mises à jour ...)
Ce serait plus long encore. Parce que dans ce cas, il faudrait faire un SELECT à chaque fois ou rechercher dans un tableau de taille faramineuse... Alors que si les données sont déjà dans la base, le serveur MySQL peut ignorer l'insertion (faut voir dans le manuel)...

par Mingain » 07 juin 2007, 21:53

Parcourir le csv c'est rien.
C'est le même principe que je t'ai montré sauf qu'au lieu de mettre l'adresse "fichier.csv" ben tu mets : "site.com/fichier.csv".
Ceci dit, encore faut-il que le site n'est pas activé une sécurité pour éviter d'être aspiré ...

Le problème qui me fait déjà plus peur c'est que sur le site ou y'a la bdd d'ip, le fichier qui contient le csv est un zip ...

Donc faut dézipper avec PHP (forcément !). Je crois que c'est possible.
Faudrait voir de ce côté :

Donc en gros il te faut transférer le fichier zip sur ton serveur, le dézipper puis le parser (le parcourir quoi) avec PHP comme on l'avait fait précédemment.

Pour plus d'optimisation, lorsque tu aura parsé et que tu sera en train d'ajouter sur ta bdd, fais une condition qui voit si ce que tu es en train de mettre n'est pas ce qui est déjà présent. ça déchargera un peu l'appli (Sinon vu le nombre de ligne, je te raconte pas le lagg à chaques mises à jour ...)

par Idaho » 07 juin 2007, 18:19

pourquoi tu n'indiquerai pas sur une page la dernière version, il n'y aurai qu'à comparer avec la version locale ?
ou encore plus simple, comparer les dates...

j'avai fait un script de localisation il y a peu de temps en me servant de cet article :
http://cyberzoide.developpez.com/php4/ip-to-country/
mais c'est limité au pays malheureusement.

pour la base de donnée avec les régions/villes je pense que ça intéresse pas mal de monde, ce serai possible que tu la mette en téléchargement quelque part ?

again ^^

par supernony » 07 juin 2007, 14:45

bon j'ai du nouveau encore, il faudrait que je sois en mesure quand je lance mon programme de localisation de pouvoir vérifier la version de ma base de données et de pouvoir télécharger automatiquement la nouvelle base au cas où cela serait nécessaire.
Cependant c'est vraiment tendu comme principe (faudrait écrire des scripts qui parcourent le .csv directement du site et qu'il le compare à la base de données)
Donc voila étant un noob en php je suis un peu perdu lol si quelqu'un avait une idée merci bcp ^^

par Script » 07 juin 2007, 10:00

bon mingain je te laisse l'explication du numéro ip comme prévu ;)

Calcul d’une adresse IP par le numéro d’IP


1° Notion d’adresse IP

Une adresse IP est définie par une série de 4 fois 4 nombres, compris entre 0 et 255 de telle manière que :

Adresse IP = w.x.y.z (avec w,x,y,z compris entre 0 et 255)

2°Notion de numéro IP

A l’origine chaque pays du globe possède des numéros IP correspondant à sa localisation géographique. Chacun de ces numéros IP est composé de 10 chiffres. Par exemple :

Numéro IP en Australie (AU) : 1029177344

3°Diversité des numéros IP au niveau géographique

Il est important de souligner que pour un même pays il existe plusieurs numéros IP, selon l’endroit où l’on est situé dans le pays. Par exemple :

Numéros IP appartenant à la France (FR) : 1430519808 ou 1430650879 ou 1428147904

4°Algorithme de calcul d’une adresse IP

Une adresse IP est définie selon un algorithme dépendant des numéros IP. L’algorithme est défini selon le modèle d’adresse IP précédent tel que :

Adresse IP = w.x.y.z (avec w,x,y,z compris entre 0 et 255)
Numéro IP = w*15777216 + x*65536 + y*256 + z

Prenons exemple sur l’adresse IP française 85.68.0.0, afin de vérifier l’algorithme :

Numéro IP = (16777216*85) + (65536*68) + (0*256) + (0*0) = 1430519808

Dans le troisième paragraphe on a vu que ce numéro IP appartient à la France, l’algorithme est donc vérifié.

par Cyrano » 01 juin 2007, 14:15

Modération :
Mingain, tu n'es pas avec une bande de potes de lycée, tu es prié de surveiller un peu ton vocabulaire. La grossièreté n'a pas sa place ici ! :evil:

Merci de prendre le temps de lire les règlements.

par Mingain » 01 juin 2007, 12:01

Edition : Je supprime mon message ...
Modération :
Mingain, tu n'es pas avec une bande de potes de lycée, tu es prié de surveiller un peu ton vocabulaire. La grossièreté n'a pas sa place ici ! :evil:

Merci de prendre le temps de lire les règlements.

rere

par supernony » 01 juin 2007, 11:39

ben j'ai vu le prof ce matin il m'a tout filé... en résumé la j'ai un gros gros puzzle tout en bordel et faut tout que je range ^^ franchement c'est déprimant ya trop de données...

par Mingain » 01 juin 2007, 11:35

Mon gars ... J'ai trouvé la zik I miss you ... :lol: :lol: :lol: :lol:


Sinon gg pour la bdd tu l'as eu comment finalement ?

re

par supernony » 01 juin 2007, 11:22

bon alors il y a du nouveau : j'ai enfin la abse de données des régions et meme des villes ^^ cependant c'est pas trié par capitales (parce que voila le bled perdu en cote d'ivoire on s'en fout un peu à la limite...) si quelqu'un conaissait un fichier de base de données avec uniquement les pays et les capitales correspondantes (latiudes et longitudes aussi ce seré bien :))