• 13-12-2009, 02:05:27
    #1
    Merhaba Arkadaşlar,
    internetten Türkiye'ye ait ip aralıklarını buldum.
    Bende yaptığım çift dilli bir siteye erişim yapılırken TR'ye ait olmayan ip numaralarını ingilizce sayfasına yönlendirmek istiyorum.
    İşte ip numaraları:
    62.29.0.0-62.29.127.255,
    213.161.128.0-213.161.131.255,
    195.142.98.0-195.142.98.255,
    217.131.0.0-217.131.255.255,
    212.253.0.0-212.253.255.255,
    212.2.192.0-212.2.223.255,
    212.33.0.0-212.33.4.255,
    213.43.0.0-213.43.128.255,
    213.248.128.0-213.248.148.155,
    213.238.128.0-213.238.158.191,
    213.14.8.0-213.14.15.255,
    195.214.144.0-195.214.151.255,
    195.174.128.1-195.174.133.254,
    195.174.0.1-195.174.31.254,
    213.248.128.0-213.248.148.255,
    213.248.149.0-213.248.191.255,
    195.214.133.0-213.214.133.255,
    213.159.32.0-213.159.40.255,
    213.153.209.0-213.153.209.255,
    212.2.192.0-212.2.223.255,
    213.238.139.0-213.238.139.255,
    213.204.64.0-213.204.88.255,
    195.87.154.0-195.87.154.255,
    195.87.86.0-195.87.86.255,
    195.87.160.0-195.87.160.255,
    195.142.57.0-195.142.57.255,
    217.21.68.0-217.21.71.255,
    212.12.128.0-212.12.132.255,
    194.242.32.0-194.242.32.255,
    212.58.0.0-212.58.15.255,
    212.58.18.128-212.58.18.191,
    62.85.128.0-62.85.128.255,
    62.85.128.0-62.85.159.255,
    80.71.128.0-80.71.129.255,
    195.33.192.0-195.33.195.255,
    195.4.32.0-195.4.36.255,
    195.74.37.0-195.74.63.255,
    195.244.32.0-195.244.63.255,
    212.12.128.0-212.12.132.255,
    212.12.133.0-212.12.159.255,
    212.33.0.0-212.33.4.255,
    212.33.5.0-212.33.31.255,
    212.45.64.0-212.45.95.255,
    212.48.224.0-212.48.255.255,
    212.50.36.0-212.50.63.255,
    212.58.0.0-212.58.15.255,
    212.64.192.0-212.64.223.255,
    127.0.0.1-000.00.000.0
    Dikkat ederseniz ip numaralarını "," ile ayırdım. İp aralılarını ise "-" işareti ile ayrdım.

    İşte yazdığım fonsiyon:
    function ip_ayikla()
    {
    	$file=fopen("include/ip.txt","r");
    	$ayir=explode(",",$file);
    	for ($i=0; $i<=count($ayir); $i++)
    	{
    		$ayir_2=explode("-",$ayir[$i]);
    		for ($z=0; $z<=count($ayir_2); $z++)
    		{
    			$ip_bol=explode(".",$ayir_2[$z]);
    			$gelen=$_SERVER['REMOTE_ADDR'];
    			$gelen_bol=explode(".",$gelen);
    			if ($ip_bol["0"]!=$gelen["0"])
    			{
    				header("Location:index.php?lang=en");
    			}
    			elseif ($ip_bol["0"]==$gelen["0"]) 
    			{
    				header("Location:index.php?lang=tr");
    			}
    		}
    	}
    	
    	
    	
    }
    Bu foksiyonu sayfaya çağırdığım zaman tarayıcı bana "Açılmaya çalışılan konum hiçbir zaman sonlanmayacak bir yönlendirme döngüsüne girdi." şeklinde bir uyarı veriyor. Sizce ne yapmam lazım?
  • 13-12-2009, 07:22:14
    #2
    Bilen yokmu arkadaşlar
  • 13-12-2009, 22:52:10
    #3
    $_SERVER['SERVER_ADDR'] ile gelen serverin ip adresini alabilirsin.
    preg_match fonksiyonuylada gelen ip adresinin elindeki ile kiyaslayabilirsin.
  • 14-12-2009, 01:06:02
    #4
    tarayıcı dilini kullansanız daha kolay olmaz mı işiniz, hem bu kullandığınız ip aralıkları ne kadar güncel? 81-85-88 li adsl ve 188 li 3g ipleri yok listenizde.