2010-07-20 4 views

Répondre

3

essayez ceci:

if ($_SERVER['REMOTE_ADDR'] == "x.x.x.x") 
    echo "admin"; 

else 
    echo "user"; 

il vérifie l'adresse IP de l'utilisateur et effectuer l'action.

+0

Parfois, l'adresse IP donnée par REMOTE_ADDR est non valide (par exemple, passé de proxy), de sorte que vous pouvez vérifier en utilisant HTTP_CLIENT_IP et d'autres (voir extrait de code ci-dessous). Cependant, aucune de ces méthodes n'est capable de détecter les spoofers IP. – ina

0

Vous pouvez utiliser les variables $ _SERVER pour vérifier si la source provient de l'adresse IP à laquelle vous vous limitez. Voici quelques extraits de fonction utiles (s $ est juste _SERVER $):

function gethostname($ip){ 
return gethostbyaddr($ip);} 

function gethostnamepretty($ip){ 
$host=gethostbyaddr($ip); 
$host=explode('.',$host); 
$max=count($host); 
return $host[$max - 2];} 

function getRawRealIP($s){ 
if (!empty($s['HTTP_CLIENT_IP'])) //check ip from share internet 
{ 
    $ip=$s['HTTP_CLIENT_IP']; 
} 
elseif (!empty($s['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy 
{ 
    $ip=$s['HTTP_X_FORWARDED_FOR']; 
} 
else 
{ 
    $ip=$s['REMOTE_ADDR']; 
} 
return $ip;} 

function checkIP($ip){ 
return long2ip(ip2long($ip));} 

function useragent($s){ 
return $s['HTTP_USER_AGENT'];} 
+0

HTTP_CLIENT_IP? –

2

Je suggère d'utiliser un fichier .htaccess au lieu d'ajouter ceci à votre php-code:

RewriteEngine On 
RewriteBase /
# IPs that are still allowed to view everything 
RewriteCond %{REMOTE_ADDR} !^213.123.39.12$ [NC] 
RewriteRule !^(noentry_image.jpg|favicon.ico)$ sorry_stay_out.html [L] 

vient de mettre le fichier ".htaccess" dans votre répertoire racine de votre site Web. Ensuite, tout le monde sera redirigé vers la page sorry_stay_out.html, qui contient le noentry_image.jpg.

Tous les visiteurs de l'adresse IP autorisée verront le site comme normal. Vous pouvez répéter la ligne "RewriteCond% {REMOTE_ADDR}!^213.123.39.12 $ [NC]" avec des adresses IP différentes aussi souvent que vous le souhaitez, pour ajouter des adresses IP supplémentaires.

Alternative avec blocage juste:

order allow,deny 
allow from 62.57.16.192 
allow from 72.232.56.154 
deny from all 
Questions connexes