Convertir une IP en pays et afficher son drapeau

Convertir une IP en pays et afficher son drapeau

Le site http://ip-to-country.com fournit une base de donnée fiable (ce site est édité pour une société accréditée par l’ICANN) qui permet de rattacher une adresse IP à un pays.

Le base est téléchargeable en format CSV ici : http://ip-to-country.webhosting.info/downloads/ip-to-country.csv.zip

En important ce fichier sous mysql ou autre vous aurez une belle base de plus de 100’000 enregistrements à exploiter :

ip_from ip_to country_code country_name
16777216 17367039 au australia
17367040 17432575 my malaysia
17432576 17498111 au australia
17498112 17563647 kr republic of korea
17563648 17825791 cn china
17825792 18087935 kr republic of korea
18087936 18153471 au australia
18153472 18219007 jp japan
18219008 18350079 in india

Les adresses IP sont enregistrées en mode littéral, pour convertir une IP standard (xx.xx.xx.xx) en IP littéral  (xxxxxxxx) utilisez la fonction php « ip2long() »

Pour obtenir le pays à partir de l’IP :

<?php
$ip = $_SERVER["REMOTE_ADDR"];
$long = ip2long($ip);
// vous devez être connecté à mysql
$sql = 'SELECT `country_code`,`country_name` FROM `nom_base_ip-to-country` WHERE `ip_from` <= '.$long.' AND `ip_to` >= '.$long.';';
$pays = mysql_fetch_assoc($sql);
if (isset($pays)) echo $pays['country_name']; //affichera le nom du pays...
else echo 'Pas de correspondance'; //ou à défaut ce message
?>

Sous WordPress remplacer les lignes 5 et 6 par :

$pays = $wpdb->get_row('SELECT `country_code`,`country_name` FROM `ip2c` WHERE `ip_from` <= '.$long.' AND `ip_to` >= '.$long.';', ARRAY_A);

Pour afficher le drapeau associé au pays vous devez avoir un ensemble de drapeau nommé avec le code du pays (fr, us, ca) le site famfamfam.com en propose 247 en petits formats png ou gif.

<?php
if (isset($pays)) echo '<img src="dossier_de_drapeaux/'.$pays['country_code'].'.png" alt="'.$pays['country_name'].'" />';
?>
07nov

Laissez une réponse

css.php
Plus dans Tuto, WebDev
Top 5 extensions firefox

1. Adblock Plus Ce add-on très connu bloque 99% des publicitées du web, Adblock c'est plus de confort et moins...

WordPress chez free perso

Installer Wordpress sur un espace perso free peut se révéler fastidieux... En effet WP requiert PHP 5, free propose PHP4,...

Fermer