• 19-01-2013, 01:34:59
    #1
    Şu anda kullandığımız java script şu şekilde ;
    var mob = new Array(3)
    for (i=0; i < 3; i++)
    mob[i]=new Array(3)
    
    //MOBIL REKLAM ICERIGI BURADAN DEGISTIRILECEK
    mob[0][1] = "http://google.com/banner/mobil.gif"
    mob[0][2] = "http://m.yandex.com"
    
    mob[1][1] = "http://google.com/banner/mobil.gif"
    mob[1][2] = "http://m.yahoo.com"
    
    mob[2][1] = "http://google.com/banner/mobil.gif"
    mob[2][2] = "http://m.google.com"
    
    
    
    
    var web = new Array(3)
    for (i=0; i < 3; i++)
    web[i]=new Array(3)
    
    web[0][1] = "http://google.com/3.gif"
    web[0][2] = "http://google.com/"
    
    web[1][1] = "http://google.com/2.gif"
    web[1][2] = "http://yandex.com"
    
    web[2][1] = "http://google.com/1.gif"
    web[2][2] = "http://yahoo.com"
    
    
    hangiref=site;
    var mobile = (/iphone|ipad|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase()));
    if (mobile) 
    { 
    rastgele=Math.floor(Math.random()*mob.length);
    window.location = "http://m.google.com"
    }
    else
    {
    rastgele=Math.floor(Math.random()*web.length);
    
    document.write('<a href="'+web[rastgele][2]+'?site='+hangiref+'"><img src= "' + web[rastgele][1] + '"></a>');
    
    
    }
    Gördüğünüz gibi mobil kullanıcıyı tarayıcısına & işletim sistemine göre algılıyor.
    Biz ise aşağıdaki php kodundaki gibi ip sine göre algılamak istiyoruz ;
    <?php
    
    /*
     * ORNEK KULLANIM
    
      include '../operatorController.class.php';
      $operator = operatorController::Run();
      if ( $operator !== FALSE )
      echo "OPERATOR : " . $operator;
      else
      echo "Mobil bir aygit degil";
    
     */
    
    class operatorController {
    
        private
                $operatorIPAddr = array(
                    "TURKCELL" => array(
                        "86.108.128.1/86.108.255.254",
                        "86.108.132.129/86.108.132.158"
                    ),
                    "VODAFONE" => array(
                        "212.65.132.1/212.65.132.62",
                        "212.65.140.160/212.65.140.191"
                    ),
                    "AVEA" => array(
                        "217.174.43.132",
                        "217.174.43.133"
                    ),
                    "KKTCEL" => array(
                        "212.252.169.99",
                        "94.79.91.1/94.79.91.254"
                    )
                        ),
                $clientIPAddr = NULL,
                $isMobileOperator = FALSE;
    
        public function __construct($IPAddr = NULL) {
            #$this->clientIPAddr = is_null($IPAddr) ? $_SERVER['REMOTE_ADDR'] : trim($IPAddr);
            $this->clientIPAddr = is_null($IPAddr) ? Helpers::getRealIPAddr() : trim($IPAddr);
            unset($IPAddr);
    
            return $this->controlIPAddress();
        }
    
        private function controlIPAddress() {
            foreach ($this->operatorIPAddr as $operatorName => $ipData) {
                foreach ($ipData as $IP) {
                    if (strstr($IP, '/')) {
                        $_ipData = explode('/', $IP);
                        $start = ip2long(trim($_ipData[0]));
                        $end = ip2long(trim($_ipData[1]));
                    } else {
                        $start = ip2long($IP);
                        $end = ip2long($IP);
                    }
    
                    if ((ip2long($this->clientIPAddr) >= $start && ip2long($this->clientIPAddr) <= $end)) {
                        $this->isMobileOperator = $operatorName;
                        return $this->isMobileOperator;
                    }
                }
            }
        }
    
        public static function Run($IPAddr = NULL) {
            $operatorController = new operatorController($IPAddr);
            if ($operatorController->isMobileOperator !== FALSE)
                return $operatorController->isMobileOperator;
            else
                return FALSE;
        }
    
    }
    
    ?>
    Sanıyorum bu PHP ip ye göre algılamayı js ye entegre edemiyceğimiz için ilk verdiğim scripti php olarak yazdırmak istiyorum. 2 verilen scriptteki ip ye göre algılama sistemiyle.
  • 19-01-2013, 02:56:48
    #2
    Selamlar arkadaşım Java ile php yi bir arada kullanabilirsin.
    Şöyle ki;
    php ile algıladığın IP adresini parametre olarak Javaya gönderip, JSON değeri olarak php dosyana post edersen ve de php functionundan gelen değeri de echolatabilirsen işlem yapan php dosyanda java ile birleştirmiş olursun php classını. Zaman sıkıntım olmasa yardımcı olabilirdim fakat şu 2 hafta ufukta öyle bir rahat zaman görünmüyor. Umarım size bir fikir verecektir.
  • 19-01-2013, 05:16:06
    #3
    sorun şu ki arkadaşım, ip ile, mobil olduğunu algılamaya çalışmak pek mantıklı gelmiyor,
    çünkü wifi kullanan mobil kullanıcılar çok olasıdır ki farklı ip range'inde olabilir...
    Böyle mobil kullanıcılara o zaman, normal site göstermiş olursun

    Veya tam tersi şekilde, mobil olmayıp, laptop ile, turkcell, vodafone, avea vs'nin 3G si ile bağlananlar var...
    onlara da, ip yi tanıyarak, mobil versiyonu göstermiş olursun, bu da istenmeyen bir durum...

    bu nedenlerden dolayı, ilk scriptteki gibi, browser userAgent veya işletim
    sistemine vs bakarak mobil olup olmadığını algılamak en mantıklı sistem...
  • 19-01-2013, 18:50:24
    #4
    pdesign adlı üyeden alıntı: mesajı görüntüle
    sorun şu ki arkadaşım, ip ile, mobil olduğunu algılamaya çalışmak pek mantıklı gelmiyor,
    çünkü wifi kullanan mobil kullanıcılar çok olasıdır ki farklı ip range'inde olabilir...
    Böyle mobil kullanıcılara o zaman, normal site göstermiş olursun

    Veya tam tersi şekilde, mobil olmayıp, laptop ile, turkcell, vodafone, avea vs'nin 3G si ile bağlananlar var...
    onlara da, ip yi tanıyarak, mobil versiyonu göstermiş olursun, bu da istenmeyen bir durum...

    bu nedenlerden dolayı, ilk scriptteki gibi, browser userAgent veya işletim
    sistemine vs bakarak mobil olup olmadığını algılamak en mantıklı sistem...
    Tam olarak yapmak istedigimizde bu zaten 3G , edge uzerinden baglanan kullanicilari ayristirmak.
  • 19-01-2013, 21:28:59
    #5
    amac ne? mobil cihazlar genelde korumasiz oldugu icin, virus veya benzeri bir durum mu?