
نوشته اصلی توسط
omid1991
سلام وقت بخیر
تست کنید.
کد PHP:
function cidr_match($range)
{
list($subnet, $bits) = explode('/', $range);
$ip = ip2long($_SERVER['REMOTE_ADDR']);
$subnet = ip2long($subnet);
$mask = -1 << (32 - $bits);
$subnet &= $mask;
return (boolean) (($ip & $mask)==$subnet);
}
$isIrRangeIP=0;
$irRangeIP = file_get_contents('irRangeIP.txt');
$irRangeIP = explode("\n",$irRangeIP);
foreach($irRangeIP as $_irRangeIP)
$isIrRangeIP += cidr_match($_irRangeIP);
if($isIrRangeIP==true)
{
//Iranian users
$page = 'ir';
}
else
$page = 'en';
header("Location: {$page}.php");
exit();
ممنون ولی مشکل اینجاس که کد رو کلا هر چی تست میکنم چه با ای پی ایران چه با سرور مجازی چه با ***** شکن اخر میره صفحه ir.php
داخل صفحه irRangeIP.txt هم رنج ای پی های ایران رو ریختم
- - - Updated - - -

نوشته اصلی توسط
omid1991
سلام وقت بخیر
تست کنید.
کد PHP:
function cidr_match($range)
{
list($subnet, $bits) = explode('/', $range);
$ip = ip2long($_SERVER['REMOTE_ADDR']);
$subnet = ip2long($subnet);
$mask = -1 << (32 - $bits);
$subnet &= $mask;
return (boolean) (($ip & $mask)==$subnet);
}
$isIrRangeIP=0;
$irRangeIP = file_get_contents('irRangeIP.txt');
$irRangeIP = explode("\n",$irRangeIP);
foreach($irRangeIP as $_irRangeIP)
$isIrRangeIP += cidr_match($_irRangeIP);
if($isIrRangeIP==true)
{
//Iranian users
$page = 'ir';
}
else
$page = 'en';
header("Location: {$page}.php");
exit();
من کد را به بالای کد کد زیر را اضافه کردم:
کد PHP:
function GetIp()
{
$ip = $_SERVER['REMOTE_ADDR'];
return $ip;
}
$range=GetIp();
ولی نشد اخر در هر صورت میره ir.php