نقل قول نوشته اصلی توسط omid1991 نمایش پست ها
سلام وقت بخیر

تست کنید.

کد PHP:
function cidr_match($range)
{
    list(
$subnet$bits) = explode('/'$range);
    
$ip ip2long($_SERVER['REMOTE_ADDR']);
    
$subnet ip2long($subnet);
    
$mask = -<< (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 = -<< (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