Domain adını almak istiyorsanız, client'in size bunu göndermesi gerekir. $_SERVER['HTTP_HOST'] kendi hostname'inizi gösterir. Mesela bir lisans sistemi yapıyorsanız file_get_contents('http://benimsitem.com/lic.php?domainname='.urlencode($_SERVER['HTTP_HOST'])); şeklinde en azından get methoduyla domain adını almanız gerekir.
Ancak $_SERVER["REMOTE_ADDR"] ile karşı tarafın ip adresini alırsınız bu ip adreslerini filtreleyebilirsiniz. Aksi halde client istemediği sürece referer elde edemezsiniz.
Daha çok ayrıntı verirseniz alternatif yollar gösterebilirim.
Aşağıda karşı sitenin bana bağlantı kurmasını sağlayan kodu yazıyorum, yani bana domain adını yollatıyorum. <?php
sitex = "http://".$_SERVER["HTTP_HOST"]."";
$files = fopen("http://www.istekyapansite.com/sayfa.php?site=$sitex",'r');
while(!feof($files)){
$satir = fgets($files);
echo "$satir <br />";
}
fclose($files);
?>
Aşağıdaki kod ise benim sitemin sayfasında olan kod yani sayfa.php yukardaki kodun istek yaptığı yer.
www.benimsitem.com/sayfa.php?site=$$$
function filtre($q) { // Filtre ile gerekli yerleri temizledim
$q = str_replace("http://www.","",$q);
$q = str_replace("http://","",$q);
$q=trim($q);
return $q;
}
if($_GET['site']){
include("db.php");
$site = filtre($_GET['site']); // filtreli şekilde _get ile gelen domain adını yazdırdım
$sor=mysql_query("SELECT * FROM karaliste where aktif=1 "); //aktif 1 ise yasaklansın
$url = $yaz["url"];
if($site == $url){
echo "yasakli";
}else{
$sor=mysql_query("SELECT * FROM temizliste ORDER BY id");
while($yaz=mysql_fetch_array($sor)){
$url = $yaz["icerik"];
echo $url;
}
}
}
} $sor=mysql_query("SELECT * FROM karaliste where aktif=1 "); //aktif 1 ise yasaklansın dedim ancak sadece bir tane siteyi yasaklıyor ! halbuki karaliste kolonundaki 10 siteden 5 tanesi aktif=1 yaptım ancak diğer dördünü neden görmüyor ve yasaklamıyor !! ben nerde yanlışlık yaptım anlamıyorum sabahdan beri uğraşıyorum gerçekten.