• 18-11-2010, 14:27:24
    #1
    Merhaba arkadaşlar,
    Forumda bir çok lisans konusu açılmış, baktım birşeyler yapmaya çalıştım fakat olmadı. Kodlar aşağıdadır, doğrusunu verebilecek olan varmı? Yani sorun şurda, bu kodlar ile sadece domaine yada ip ye lisans verebiliyorum sadece birinde çalışıyor script, ben istiyorum ki hem www.siteismi.com sitesine girince çalışsın hemde X.X.X.X ipsine girince çalışsın.

    Lisans keyi oluşturma kodu (grafitus'a ait.)
    <?php
    
    if (isset($_GET['site']))
    {
        $site = htmlspecialchars($_GET['site'], ENT_QUOTES);
        $ip = $_GET['ip'];
    
        $site_hash = sha1(sha1(md5($site.'-'.$ip. 'karistir')). 'karistir2');
        $site_hash = substr($site_hash, 0, 25);
        $site_hash = wordwrap($site_hash, 5, '-', true);
        echo '<textarea cols="35">' . mb_strtoupper($site_hash) . '</textarea>';
    }
    
    echo '
    <form action="" method="get">
        Site adresi: <input type="text" value="" name="site" />
        IP adresi: <input type="text" value="" name="ip" />
        <input type="submit" value="Şifreyi Ver" />
    </form>';
    
    ?>
    Lisans kontrol fonksiyonu (grafitus'a teşekkürler)

    <?php
    function license_control($license_code)
    {
        // Ben yazdığım scriptlerde sript urlsini almak için bunun gibi bir değişken kullanırım. Değişken içeriği örneğin şöyledir:
        // $scripturl = 'http://localhost.com/grafitus';
        global $scripturl;
    
        // Şimdi site adresini alağıcağız. Ancak işimizi şans bırakmamak amacıyla burada kendimizi biraz kasacağız.
        // $_SERVER['SERVER_NAME'] bazenleri boş dönebiliyor. Bunu kontrol ediyoruz. Boş ise bir sonraki $_SERVER['HTTP_HOST']'a bakıyoruz.
            $ip = $_SERVER['SERVER_ADDR'];
        if (!empty($_SERVER['SERVER_NAME']))
            $site = $_SERVER['SERVER_NAME'];
        // $_SERVER['HTTP_HOST']'de bazen boş dönebilir. İşimizi şansa bırakmak olmaz. Bu nedenle bir sonraki else'ye geçiyoruz. $scripturl'nin içinden http://www. sız site adresini alıyoruz.
        elseif (!empty($_SERVER['HTTP_HOST']))
            $site = $_SERVER['HTTP_HOST'];
        // Burası biraz daha karmaşık kısaca $scripturl içinden http://www. kısmı dışını alıyor.
        else
            $site = preg_match('~(http|ftp)[s]?:\/\/[w\.]*([a-zA-Z0-9\.]+)\/~i', $scripturl, $match) ? $match[2] : '';
    
        // Yukarıda yaptığımız tüm işlemlere rağmen bir site adresi elde edemediysek, müşteriyi kasmaya gerek yok. Lisans işlemini devre dışı bırakıyoruz. null olarak döndürüyoruz fonksiyonu.
        if (empty($site))
            return;
    
        // Nuraya geçebildiysek site adresini almışız. Ama ki site adresinin başında yine www. varsa siliyoruz...
        if (strpos($site, 'www.') !== false)
            $site = substr($site, 4);
    
        // Burada algoritmamızı kullanarak site adresinizi şifreliyor. Tekrar aynı lisans şifresini almaya çalışıyoruz.
        $site_hash = sha1(sha1(md5($site.'-'.$ip. 'karistir')). 'karistir2');
        $site_hash = substr($site_hash, 0, 25);
        $site_hash = wordwrap($site_hash, 5, '-', true);
        $site_hash = mb_strtoupper($site_hash);
    
        // Evettt. Can alıcı nokta. 2-5 satır üstteki aldığım şifre ile müşteriye verdiğimiz lisans kodunu eşşeltirmeye/denkleştirmeye çalışıyor. Eğerki eşleşmez veya denkleşmez ise vay onun haline: scripti öldüyoruz!
        if ($site_hash != $license_code || $site_hash !== $license_code)
            die ('<p align="center">
    <img border="0" src="images/kurulum/lisans.jpg" width="356" height="338"></p>
    <p align="center"><b><font face="Arial">Lisanssız Kullanıcı :
    <font color="#FF0000">'.$site.' - '.$ip.'</font></font></b></p>
    <p align="center"><b><font face="Arial" color="#FF0000">Lütfen Lisans Satın 
    Alınız.</font></b></p>');
    }
    
    ?>
    Kullanımı;

    <?php
    $key = '697E1-E9C00-A4845-4F535-B1850';
    license_control($key);
    
    echo "Merhaba Dünya!";
    ?>
  • 18-11-2010, 16:33:05
    #2
    Üyeliği durduruldu
    ipten girince neden çalışsın . anlayamadım adı üstünde domain lisans
  • 18-11-2010, 17:25:33
    #3
    BHCoder adlı üyeden alıntı: mesajı görüntüle
    ipten girince neden çalışsın . anlayamadım adı üstünde domain lisans
    Hocam yazdığım script bir oyun scripti, yani şöyle izah edeyim oyundaki bilgileri web sitesine aktarıyor, bazı sunucu sahipleri sunucularına domain yönlendirmiyor IP ile kullanıyor, bazıları hem domain hem ip ile çalıştırıyor. Ben domaine lisans verince IPye neden lisans vermiyorsun diye bir diyalog ortaya çıkıyor
  • 18-11-2010, 19:22:38
    #4
    lisans numarası alma kısmı hem domain hem ip nin karışımı, bunu bi if fonksiyonuna alıp site değişkeni yoksa sadece ip değişkeninden şifreleme yapabilirsin