mysql ip geolocation


Posted: febbraio 10th, 2009 | Author: | Filed under: Guide, Programmazione | Tags: , , , | No Comments »


Leggendo qua e la ho mi son ritrovato su questa pagina. tante volte avrei voluto conoscere la localizzazione geografica di un indirizzo ip, per svariati motivi: sapere l’origine di un mio visitatore per esempio.
Bene ora tramite questo database mysql è possibile conoscere (approssimativamente) la localizzazione di un indirizzo ip.

Per poterlo utilizzare bisogna avere un server mysql sul quale fare l’import del database, vi consiglio di farlo tramite la linea di comando del server per non avere problemi data la dimensione del file, questo è il comando da dare:

source /path/to/ipinfodb.sql

successivamente è necessario possedere l’indirizzo ip da ricercare (ovviamente :P) nella forma `a.b.c.d` e utilizzando la formula:

(256*a + b) * 256 + c

calcolarsi il valore con cui fare la ricerca. Questa è la query:

SELECT * FROM `ip_group_city` where `ip_start` <= 4881709 order by ip_start desc limit 1;
dove al posto di `4881709` dovete metterci il risultato dell’operazione sopra descritta.
Questo piccolo script php fa tutto questo per voi, dovete solo riempire con server, username, password e database:
<?php

if (!isset($_GET['ip'])){
?>
<form action="searchip.php" method="get">
<input type="text" name="ip" /><br />
<input type="submit" />
</form>
<?
} else {
//QUESTO SCRIPT NON È SICURO (NON C'È CONTROLLO SULL'INPUT), UTILIZZATELO SOLO PER DELLE PROVE LOCALI!

$split = explode(".", $_GET['ip']);
$COUNT = (256*$split[0] + $split[1]) * 256 + $split[2];
$QUERY = 'SELECT * FROM `ip_group_city` where `ip_start` <= '.$COUNT.' order by ip_start desc limit 1;';

mysql_connect('localhost', 'username', '');
mysql_select_db("test");
$res = mysql_query($QUERY);

$arr = mysql_fetch_array($res);

echo "Country: ".$arr['country_code']."<br />City: ".$arr['city'];

}

?>
buon lavoro :)

  • Articoli Recenti:

  • Tag

  • Categorie

  • Meta

  • Licenza Creative Commons

    Copyright © 2017, | ldlabs.org – Blog is proudly powered by WordPress All rights Reserved | Theme by Ryan McNair modified By Francesco Apollonio

    Smilla Magazine Il Bloggatore iwinuxfeed.altervista.org Feedelissimo - tecnologia WebShake - tecnologia