fonction php pour capter l'ip [src]
9 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
fonction php pour capter l'ip [src]
bon
dans la suite de ma release, j'ai optimisé mon traceur d'ip
dans la suite de ma release, j'ai optimisé mon traceur d'ip
- Code: Tout sélectionner
####################################################################
function get_ip(){
# get_ip by roger girardin
################################################################
# if the environnement var HTTP_X_FORWARDED_FOR or HTTP_VIA
# then the client ip is HTTP_X_FORWARDED_FOR
#
# proxy
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) || isset($_SERVER['HTTP_VIA']))
{
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
# if HTTP_CLIENT_IP is set then the client ip is HTTP_CLIENT_IP
elseif(isset($_SERVER['HTTP_CLIENT_IP']))
{
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
# else the client ip is REMOTE_ADDR
elseif(isset($_SERVER['REMOTE_ADDR']))
{
$ip = $_SERVER['REMOTE_ADDR'];
}
else
{
$ip = "0.0.0.0"; # hidden
}
$ip_num = 0;
#
if($array_ip = explode(".",$ip))
{
$count = count($array_ip);
#
for($i = 0; $i < $count; $i++)
{
settype($array_ip[$i],"integer");
$exp = $count - $i -1;
#
$ip_num += $array_ip[$i]*pow(256,$exp);
}
}
return $ip_num;
}
et si $_SERVER['HTTP_VIA'] est défini et pas $_SERVER['HTTP_X_FORWARDED_FOR'], ça va renvoyer une belle erreur.
Sinon, pour que le client reçoive le résultat de sa requête, il faut bien qu'il y ait une ip de définie, elle ne peut être hidden. Au pire, ça sera de l'ip spoofing.
Sinon, pour que le client reçoive le résultat de sa requête, il faut bien qu'il y ait une ip de définie, elle ne peut être hidden. Au pire, ça sera de l'ip spoofing.
lol
c'est vrai que ma condition est glauque, une variable ne va pas sans l'autre, $ip sera toujours renseignée par l'adresse qui m'interesse le plus
dans l'autre version je loggai toutes les adresses, mais effectivement la je paux enlever le deuxième paramètre de ma condition
pour le hidden :
il y a des systemes de proxy qui renvoient unknow comme adresse ip, c'est pire que du spoof
rog
c'est vrai que ma condition est glauque, une variable ne va pas sans l'autre, $ip sera toujours renseignée par l'adresse qui m'interesse le plus
dans l'autre version je loggai toutes les adresses, mais effectivement la je paux enlever le deuxième paramètre de ma condition
pour le hidden :
il y a des systemes de proxy qui renvoient unknow comme adresse ip, c'est pire que du spoof
rog
release
j'ai modifié ma strategie
comme je prends la langue par le navigateur, je n'ai pas besoin de matcher l'expression decimale de l'ip avec une table de correspondance
et vu d'un aspect sécuritaire, il est plus judicieux de logger toutes les adresses renvoyées par le client
la nouvelle fonction renvoie un tableau qui contient toutes les ip loggables
j'ai ajouté une fonction pour verifier si une chaine est bien une adresse ip (V4)
j'ai l'impression que ça n'interesse personne
rog
comme je prends la langue par le navigateur, je n'ai pas besoin de matcher l'expression decimale de l'ip avec une table de correspondance
et vu d'un aspect sécuritaire, il est plus judicieux de logger toutes les adresses renvoyées par le client
la nouvelle fonction renvoie un tableau qui contient toutes les ip loggables
j'ai ajouté une fonction pour verifier si une chaine est bien une adresse ip (V4)
- Code: Tout sélectionner
####################################################################
# changing the function to log every ip related var
####################################################################
function get_ip(){
#
$varname = array(0=>"HTTP_VIA","HTTP_X_FORWARDED_FOR","HTTP_CLIENT_IP","REMOTE_ADDR");
$ip = array();
#
for($i = 0; $i < count($varname); $i++)
{
if(isset($_SERVER["$varname[$i]"]))
{
if(verif_ip($_SERVER["$varname[$i]"]))
{
$ip[$i] = $_SERVER["$varname[$i]"];
}
else
{
$ip[$i] = htmlentities($_SERVER["$varname[$i]"]);
}
}
else
{
$ip[$i] = NULL;
}
}
#
return $ip;
}
####################################################################
# checking valid ip
####################################################################
function verif_ip($ip){
#
$ip = trim($ip);
#
if($explode = explode(".",$ip))
{
$count = count($explode);
#
if($count == 4)
{
for($i = 0; $i < count($explode); $i++)
{
if($explode[$i] < 0 || $explode[$i] > 255)
{
return false;
}
}
}
else
{
return false;
}
}
else
{
return false;
}
return true;
}
####################################################################
j'ai l'impression que ça n'interesse personne
rog
>> j'ai l'impression que ça n'interesse personne
en meme temps, on est pas dans un forum de depots de scripts de programmation, mais dans un forum dédié au referencement
et avec tous les outils de stats qui existent déjà en plus ... 
en meme temps, on est pas dans un forum de depots de scripts de programmation, mais dans un forum dédié au referencement
bah non
mon acienne detection capturait
HTTP_X_FORWARDED_FOR
HTTP_CLIENT_IP
REMOTE_ADDR
et je retrouvais des logs comme ça
y en avait même qui avait les trois variables renseignées, maintenant je log systematiquement les quatres, quelles soient vides ou non
rog
mon acienne detection capturait
HTTP_X_FORWARDED_FOR
HTTP_CLIENT_IP
REMOTE_ADDR
et je retrouvais des logs comme ça
224.11.42, 200.228.66.234
201.29.192.51, unknown
10.0.0.162, 10.129.50.82
10.0.0.162, 202.38.62.226
10.15.36.3, 10.15.30.248
201.4.69.134, 165.228.128.11, unknown
y en avait même qui avait les trois variables renseignées, maintenant je log systematiquement les quatres, quelles soient vides ou non
rog
9 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
Consultez la description détaillée des produits ou services de Google suivants : Google Related Links
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités





le forum