我只需要从特定的IP地址访问网站。
这是否可以使用PHP。
该项目正在开发中,有些人使用它并说“网站不好”。所以
我喜欢避免那种事情。这就是我需要这个解决方案的原因。答案 0 :(得分:3)
试试这个:
if ($_SERVER['REMOTE_ADDR'] == "x.x.x.x")
echo "admin";
else
echo "user";
检查用户的ip并执行操作。
答案 1 :(得分:2)
我建议使用.htaccess文件,而不是将其添加到您的php代码中:
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]
只需将“.htaccess”文件放入您网站的root-dir即可。然后每个人都会被重定向到包含noentry_image.jpg的sorry_stay_out.html页面。
来自IP的所有访问者都将看到该网站正常。您可以根据需要重复使用不同IP的“RewriteCond%{REMOTE_ADDR}!^ 213.123.39.12 $ [NC]”行,以添加其他IP。
替代只是阻止:
order allow,deny
allow from 62.57.16.192
allow from 72.232.56.154
deny from all
答案 2 :(得分:0)
您可以使用$ _SERVER变量来检查源是否来自您要限制的IP。以下是一些有用的功能片段($ s只是$ _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'];}