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!";
?>