• 06-01-2014, 19:44:20
    #1
    Arkadaşlar merhabalar php bilgim olmadığından özellikle js.script dosyası olursa daha çok işimize yarayacağı hazır kolayca kullanabileceğimiz ülke ip adresine göre siteyi yönlendirebileceğimiz bir js veya php fonksiyon yokmu? Herkes tarayıcıya göre önermiş tamam o kolay ama bu daha ciddi bir durum işimizi görmüyor maalesef şuanki ülke ipine göre yönlendirme yapmalı?

    Sitede ve googlede aradım birkaç şey buldum onlarda çalışmadı. Mantık olarak mesela http://whatismyipaddress.com/ip/85.101.69.75 veya http://ipnerde.sifavi.com/index.php?IP=85.101.69.75 gibi biryerden siteyen giren ipi sorgulayıp ip country turkeyse bir sayfaya baska bir ülkeyse diğer sayfalara girecek bir fonksiyon var mı elinizde? (Sitede birisi paylaşmış ama o çalışmıyordu)

    Hatta şehire göre bile yönlendirme yapabilirse iyi olur. Birçok arkadaşımızında işine yarayabileceği düşüncesindeyim. Daha farklı çözümleriniz kolayca kullanabileceğimiz kodlarınız çözümleriniz varsa yardımlarınızı bekliyorum dostlar..

    Soruna Şu Şekil Çözüm Getirildi.

    Sitenizde kullanırsınız diye kenarda kalsın diyenler

    Kod açıklaması: Ülkelere göre sayfa yönledirme mesela aşağıda tr,fr örnek ülkelere yönlenen sayfalar var. Baska ülkeden girenler ise en sayfasına yönleniyor. Bu tarz araya elseifler atarak ülke sayısını artırabilirsiniz.


    <?php
    function ulke($ip) {
    $ulke = file_get_contents("http://ipinfo.io/".$ip."/country");
    return $ulke;
    }
    $ip = $_SERVER['REMOTE_ADDR'];
    $ulke = ulke($ip);
    if(eregi ("TR", $ulke)){
    include('index-tr.php');
    exit();
    } elseif(eregi ("FR", $ulke)){
    include('index-fr.php');
    exit();
    }
    else {
    include('index-en.php');
    }
    ?>

    Eğer yönlendirme sayfa yerine bir websitesine olacaksa bu seferde
    include('english-tr.php');
    olanlar yerine
    header("Location : http://www.google.com");
    Kullanabilirsiniz.

    Ayrıca sadece türkiyeden girenler için php sayfama gelsin. Diğer ülkeden girenler baska bir sayfaya yönlensin istiyorsanız da aşağıdaki kodu yazabilirsiniz. Ya da tam tersini istiyorsanız "!eregi" yerine "eregi" yazabilirsiniz.

    <?php
    function ulke($ip) {
    $ulke = file_get_contents("http://ipinfo.io/".$ip."/country");
    return $ulke;
    }
    $ip = $_SERVER['REMOTE_ADDR'];
    $ulke = ulke($ip);
    if(!eregi ("TR", $ulke)){
    include('english-tr.php');
    exit();
    }  
    ?>

    Not: Yukarıdaki include sayfaları mevcut sayfalarınız ismini kendinize göre düzenleyiniz. Ayrıca include edilen sayfa sunucuda yoksa veya ismi yanlışsa çalışmaz.
  • 06-01-2014, 19:48:40
    #2
    Üyeliği durduruldu
    Şehirlerin ip aralığını bulman imkansız bence. Bu kodu değiştirip kullanmayı dene

    iplistesi.txt dosyasi olusturun ve engellemek istediginiz ip leri satir satir ekleyin, virgül kullanmadan
    <?php
    $ip = trim($_SERVER['REMOTE_ADDR']);
    $iplist = @file('iplistesi.txt');
    foreach ($iplist as $line_num => $line) {
    $iplistesi[] = trim($line);
    }
    if (in_array($ip, $iplistesi)) {
    ?>
    Bu ip yi kabul etmiyoruz yazisi
    <?
    }
    else{
    ?>
    Göstermek istediginiz icerik
    <? } ?>
  • 06-01-2014, 19:58:26
    #3
    Şehirlerin ip aralığını bulmak değilde amaç siteye gelen ipi aynı anda üstteki siteler gibi biryapıdan sorgulayıp oradan aldığı ülke sonucuna göre bir sayfa yönlendircek üstadım. Aşağıda iplistesi.txt falan demiş öyle güncel bir listede elimzide yok maalesef ayrıca gelen ipin olduğu ülkeye göre yönlendirme yapmıyorda mevcut ip aralığına göre içerik gösteriyor. Bana lazım olan yukarıda anlattığım tarzda birşey olmalı. Yine de çok teşekkürler.

    Bityavrusu adlı üyeden alıntı: mesajı görüntüle
    Şehirlerin ip aralığını bulman imkansız bence. Bu kodu değiştirip kullanmayı dene

    iplistesi.txt dosyasi olusturun ve engellemek istediginiz ip leri satir satir ekleyin, virgül kullanmadan
    <?php
    $ip = trim($_SERVER['REMOTE_ADDR']);
    $iplist = @file('iplistesi.txt');
    foreach ($iplist as $line_num => $line) {
    $iplistesi[] = trim($line);
    }
    if (in_array($ip, $iplistesi)) {
    ?>
    Bu ip yi kabul etmiyoruz yazisi
    <?
    }
    else{
    ?>
    Göstermek istediginiz icerik
    <? } ?>
  • 06-01-2014, 20:00:50
    #4
    Ülkelere göre ip listesi burada var; http://www.ipdeny.com/ipblocks/data/countries/

    İp listesi yapıp ona göre bir yönlendirme yapabilirsiniz belki yardımcı olur umarım.
  • 06-01-2014, 20:16:25
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Senin koddaki site çökmüş, şöyle bir şey yazdım ben de.

    Alıntı
    <?php
    function ulke($ip) {
    $ulke = file_get_contents("http://ipinfo.io/".$ip."/country");
    return $ulke;
    }
    $ip = $_SERVER['REMOTE_ADDR'];
    $ulke = ulke($ip);
    if(eregi ("TR", $ulke)){
    echo 'Türksün hoşgeldin.';
    } else {
    echo 'Biz yabancıları sevmeyiz.';
    }
    ?>
  • 06-01-2014, 22:41:18
    #6
    ata350 adlı üyeden alıntı: mesajı görüntüle
    Senin koddaki site çökmüş, şöyle bir şey yazdım ben de.
    Teşekkürler bunda yazı gösterme değilde ülkeye göre html içerik gösterme veya ülkeye göre sayfalara yönlendirme olayı nasıl olur? Benim kullanacağım site Seo ile ilgisi yok ama birde google gibi arama motorlarında olumsuz etkinlememesi için bildiğiniz yöntemler varsa paylaşırsanız birçok arkadaşa referans olucaktır konu..
  • 07-01-2014, 01:19:35
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    @istanbul34;

    IP değilde şu yöntemi kullanırsanız daha stabil olacaktır.

    <?php
    	
    	$accept_language = array_key_exists("HTTP_ACCEPT_LANGUAGE", $_SERVER) ? getenv("HTTP_ACCEPT_LANGUAGE") : null;
    	$accept_language = !is_null($accept_language) ? array_reverse(explode(",", $accept_language)) : null;
    	$accept_language = !is_null($accept_language) ? end($accept_language) : null;
    	
    	switch($accept_language)
    	{
    		case "tr-TR":
    		{
    			echo "Şuanki dil: Türkçe";
    		} break;
    		case "en-US":
    		{
    			echo "Current language: English";
    		} break;
    		default:
    		{
    			echo "Varsayılan dil: Türkçe";
    		}
    	}
  • 07-01-2014, 01:44:06
    #8
    Hocam tarayıcı diline göre değil özellikle ip bazlı sayfa giriş lazım hocam hem tüm arkadaşlar içinde lazım olur.
    saintx adlı üyeden alıntı: mesajı görüntüle
    @istanbul34;

    IP değilde şu yöntemi kullanırsanız daha stabil olacaktır.

    <?php
    	
    	$accept_language = array_key_exists("HTTP_ACCEPT_LANGUAGE", $_SERVER) ? getenv("HTTP_ACCEPT_LANGUAGE") : null;
    	$accept_language = !is_null($accept_language) ? array_reverse(explode(",", $accept_language)) : null;
    	$accept_language = !is_null($accept_language) ? end($accept_language) : null;
    	
    	switch($accept_language)
    	{
    		case "tr-TR":
    		{
    			echo "Şuanki dil: Türkçe";
    		} break;
    		case "en-US":
    		{
    			echo "Current language: English";
    		} break;
    		default:
    		{
    			echo "Varsayılan dil: Türkçe";
    		}
    	}
  • 07-01-2014, 16:28:35
    #9
    istanbul34 adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler bunda yazı gösterme değilde ülkeye göre html içerik gösterme veya ülkeye göre sayfalara yönlendirme olayı nasıl olur? Benim kullanacağım site Seo ile ilgisi yok ama birde google gibi arama motorlarında olumsuz etkinlememesi için bildiğiniz yöntemler varsa paylaşırsanız birçok arkadaşa referans olucaktır konu..
    echo yazan yere include yazarak istediğiniz sayfayı çıktılayabilirsiniz.
    include('index-tr.php');
    Yönlendirme için header("Location:index.php"); kodunu kullanabilirsiniz.