Ce petit script combinant php, les fichiers de geoip et un peu de javascript a pour but de donner un maximum d'information sur l'utilisateur.
Ce code est une fois de plus tres loin d'etre parfait mais j'espere qu'il servira quand meme a certain d'entre vous ^.^ bonne journée!
Un exemple est disponible ici
http://sephirothgeek.com/outils/localisation/ip.php
Source / Exemple :
<?php
$systeme_information_menu = 1;
include("geoip.inc");
include("geoipcity.inc");
include("geoipregionvars.php");
echo "<div id='corps'>\n";
echo "<h1>Vos informations</h1>\n";
$date = strftime("%c",$_SERVER['REQUEST_TIME']);
echo "<span class='souligne'>Vous vous etes connecté a cette page a ce moment</span>:<br>$date";
echo "<br>\n";
echo "<br>\n";
$ip = $_SERVER['REMOTE_ADDR'];
echo "<span class='souligne'>IP:</span><br>$ip";
$handle = geoip_open("GeoIP.dat", GEOIP_STANDARD);
$ip2long = ip2long($ip);
$pays_code = geoip_country_code_by_addr($handle, $ip);
$pays_name = geoip_country_name_by_addr($handle, $ip);
$gi = geoip_open("GeoIPCity.dat",GEOIP_STANDARD);
$record = geoip_record_by_addr($gi,$ip);
$pays = $record->country_name;
$region = $record->region;
$region_2 = $GEOIP_REGION_NAME[$record->country_code][$record->region];
$ville = $record->city;
$latitude = $record->latitude;
$longitude = $record->longitude;
echo "<br><br><span class='souligne'>Pays:</span><br>$pays";
echo "<br><br><span class='souligne'>Code region:</span><br>$region";
echo "<br><br><span class='souligne'>Region:</span><br>$region_2";
echo "<br><br><span class='souligne'>Ville:</span><br>$ville";
echo "<br><br><span class='souligne'>Longitude:</span><br>$longitude";
echo "<br><br><span class='souligne'>Latitude:</span><br>$latitude";
geoip_close($gi);
geoip_close($handle);
$giorg = geoip_open("GeoIPOrg.dat",GEOIP_STANDARD);
$org = geoip_org_by_addr($giorg,$ip);
echo "<br><br><span class='souligne'>Organisation regulant votre reseau:</span><br>$org";
geoip_close($giorg);
echo "<br>\n";
echo "<br>\n";
$origine = $_SERVER['HTTP_REFERER'];
if (!empty($origine)){
echo "<span class='souligne'>Votre origine est:</span><br>$origine<br><br>\n";
}
$port = $_SERVER['REMOTE_PORT'];
echo "<span class='souligne'>Vous etes connecté via ce port:</span><br>$port";
echo "<br>\n";
echo "<br>\n";
$user_agent = $_SERVER['HTTP_USER_AGENT'];
if(preg_match("#firefox/\d.\d#i",$user_agent, $trouver) == 1){
$navigateur = $trouver[0];
$navigateur = str_replace ( "/" , " " , $navigateur);
}
if(preg_match("#version/\d.\d.\d safari#i",$user_agent, $trouver) == 1){
$safari = 1;
$navigateur = $trouver[0];
$navigateur = str_replace ( "Safari" , "" , $navigateur);
$navigateur = str_replace ( "/" , " " , $navigateur);
$navigateur = str_replace ( "Version" , "Safari" , $navigateur);
}
if(empty($safari)){
if(preg_match("#version/\d.\d safari#i",$user_agent, $trouver) == 1){
$safari = 1;
$navigateur = $trouver[0];
$navigateur = str_replace ( "Safari" , "" , $navigateur);
$navigateur = str_replace ( "/" , " " , $navigateur);
$navigateur = str_replace ( "Version" , "Safari" , $navigateur);
}
}
if(preg_match("#chrome/\d\d#i",$user_agent, $trouver) == 1){
$chrome = 1;
$navigateur = $trouver[0];
$navigateur = str_replace ( "/" , " " , $navigateur);
}
if($chrome != 1){
if(preg_match("#chrome/\d#i",$user_agent, $trouver) == 1){
$chrome = 1;
$navigateur = $trouver[0];
$navigateur = str_replace ( "/" , " " , $navigateur);
}
}
if(preg_match("#opera/\d.\d\d#i",$user_agent, $trouver) == 1){
$opera = 1;
$navigateur = $trouver[0];
$navigateur = str_replace ( "/" , " " , $navigateur);
}
if($opera != 1){
if(preg_match("#opera/\d.\d#i",$user_agent, $trouver) == 1){
$navigateur = $trouver[0];
$navigateur = str_replace ( "/" , " " , $navigateur);
}
}
if(preg_match("#msie \d.\d#i",$user_agent, $trouver) == 1){
$navigateur = $trouver[0];
$navigateur = str_replace ( "MSIE" , "Internet explorer" , $navigateur);
}
if(preg_match("#mspie \d.\d#i",$user_agent, $trouver) == 1){
$navigateur = $trouver[0];
$navigateur = str_replace ( "MSPIE" , "Internet explorer mobile" , $navigateur);
}
if(preg_match("/linux i686/i",$user_agent) == 1){
$systeme_exploitation = "Linux version 32 bits";
}
if(preg_match("/linux x86_64/i",$user_agent) == 1){
$systeme_exploitation = "Linux version 64 bits";
}
if(preg_match("/freebsd i386/i",$user_agent) == 1){
$systeme_exploitation = "FreeBSD version 32 bits";
}
if(preg_match("/freebsd x86_64/i",$user_agent) == 1){
$systeme_exploitation = "FreeBSD version 64 bits";
}
if(preg_match("/Mac os x/i",$user_agent) == 1){
$systeme_exploitation = "Mac OS X";
}
if(preg_match("/haiku bepc/i",$user_agent) == 1){
$systeme_exploitation = "Haiku";
}
if(preg_match("/SunOS/i",$user_agent) == 1){
$systeme_exploitation = "Open Solaris";
}
if(preg_match("/windows nt 5.1/i",$user_agent) == 1){
$systeme_exploitation = "Windows XP";
$windows = 1;
}
if(preg_match("/windows ce/i",$user_agent) == 1){
$systeme_exploitation = "Windows mobile";
}
if(preg_match("#android \d.\d#i",$user_agent,$trouver) == 1){
$systeme_exploitation = $trouver[0];
}
if(preg_match("/windows nt 6.0/i",$user_agent) == 1){
$systeme_exploitation = "Windows Vista";
$windows = 1;
}
if(preg_match("/windows nt 6.1/i",$user_agent) == 1){
$systeme_exploitation = "Windows Seven";
$windows = 1;
}
if(preg_match("/windows nt 5.2/i",$user_agent) == 1){
$systeme_exploitation = "Windows Serveur 2003";
$windows = 1;
}
if($windows == 1){
if(preg_match("/WOW64/i",$user_agent) == 1){
$version = "64 bits";
$systeme_exploitation = "$systeme_exploitation $version";
}
elseif(preg_match("/win64; x64/i",$user_agent) == 1){
$version = "64 bits, processeur AMD 64-bits";
$systeme_exploitation = "$systeme_exploitation $version";
}
elseif(preg_match("/win64; IA64/i",$user_agent) == 1){
$version = "64 bits, processeur Intel 64-bits";
$systeme_exploitation = "$systeme_exploitation $version";
}
}
if(empty($navigateur)){
$navigateur = "Navigateur inconnu\n";
}
if(empty($systeme_exploitation)){
$systeme_exploitation = "Systeme d'exploitation inconnu\n";
}
echo "<span class='souligne'>Votre navigateur:</span><br>$navigateur<br><br>\n";
echo "<span class='souligne'>Votre systeme d'exploitation:</span><br>$systeme_exploitation<br><br>\n";
echo "<span class='souligne'>Vos information sur votre navigateur internet et systeme d'explotation sont:</span><br>$user_agent\n";
echo "<br>\n";
echo "<br>\n";
$gethostbyaddr = gethostbyaddr($ip);
$dyn = explode('.', $gethostbyaddr);
$nombre_de_points = substr_count($gethostbyaddr,'.');
$fai = $dyn[$nombre_de_points - 1];
$extension_domaine = $dyn[$nombre_de_points];
if($fai == "wanadoo"){
$fai = "orange";
}
echo "<span class='souligne'>Information sur votre FAI: </span><br>$gethostbyaddr\n";
echo "<br><br><span class='souligne'>Votre FAI est: </span><br>$fai\n";
echo "<br><br><span class='souligne'>Url de votre fai: </span><br><a href='http://www.$fai.$extension_domaine'>http://www.$fai.$extension_domaine</a>\n";
?>
<br>
<br>
<script type="text/javascript">
function disableselect(e){
return false
}
function reEnable(){
return true
}
//if IE4+
document.onselectstart=new Function ("return false")
//if NS6
if (window.sidebar){
document.onmousedown=disableselect
document.onclick=reEnable
}
<!--
function SymError()
{
return true;
}
window.onerror = SymError;
var SymRealWinOpen = window.open;
function SymWinOpen(url, name, attributes)
{
return (new Object());
}
window.open = SymWinOpen;
//-->
var tjs_img;
var tjs_src="tjs.jpg";
//nom de l'image utilisé pour mesurer la vitesse de connection
var tjs_size=392363;
// taille exact de l'image en question
var tjs_delai=100;
var tjs_nb=-1;
var tjs_delai_max=20000;
var timer1=0; var timer2=0;
var tjs_fin="";
function Checkkos() {
tjs_img=new Image();
timer1=new Date();
timer1=timer1.getTime();
tjs_img.src=tjs_src+"?dummy="+timer1;
tjs_nb=0;
document.countkos.info.value="Evaluation ";
setTimeout("Timerkos()",tjs_delai);
}
function Timerkos() {
var anim="-"
tjs_nb++;
document.countkos.info.value="Evaluation";
if (tjs_nb*tjs_delai>=tjs_delai_max) {
tjs_fin=EvalConnexion(0);
document.countkos.info.value=tjs_fin;
} else {
if (tjs_img.complete) {
timer2=new Date(); timer2=timer2.getTime();
tjs_fin=EvalConnexion(tjs_size/(timer2-timer1));
document.countkos.info.value=tjs_fin;
} else {
setTimeout("Timerkos()",tjs_delai)
}
}
}
function EvalConnexion(kos) {
tjs_nb=-1;
res="";
if (kos==0) {res="Connexion impossible";}
kos=Math.round(kos*10)/10;
return res+" " + kos +" ko/s";
}
</script>
<form name="countkos">
<input type="text" name="info" size="10">
<input type="button" value="Vitesse de connexion" onClick="Checkkos()">
<p>
(Cette valeur varie en fonction de l'activité de votre connection internet, si vous etes entrain de telecharger, la valeur sera faussé)
</p>
</form>
<br><br>
<script type="text/javascript">
<!--
var SymRealOnLoad;
var SymRealOnUnload;
function SymOnUnload()
{
window.open = SymWinOpen;
if(SymRealOnUnload != null)
SymRealOnUnload();
}
function SymOnLoad()
{
if(SymRealOnLoad != null)
SymRealOnLoad();
window.open = SymRealWinOpen;
SymRealOnUnload = window.onunload;
window.onunload = SymOnUnload;
}
SymRealOnLoad = window.onload;
window.onload = SymOnLoad;
//-->
</script>
<script type="text/javascript">
function localiser() {
var myLatlng = new google.maps.LatLng(<?php echo $latitude;?>,<?php echo $longitude;?>);
var myOptions =
{
zoom: 15,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.HYBRID
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title:"Ma position"
});
}
</script>
<div id="map_canvas" style="width:500px; height:500px"></div>
</div>
<?php
echo "<br>\n";
echo "<br>\n";
?>
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.