Arkadaşlar mrb,
Birkaç gündür sürekli php ile sahte refli yönlendirme için heryere bakıyorum. Bazı bulduğum kodlar çalışıyor ama tam istediğim gibi olmuyor. Aynı farklı sunuculardaa denedim durum yine aynı. Şimdi sorunun ne olduğuna gelince, sorun kod yönlendirme yapıyor istediğim refide gösteriyor fakat ip olarak sunucu ip sini gösteriyor. Yani gelen ziyaretçinin kendi ttnet adls ip sini baz almıyor. Çalıştığı sunucun ip sini baz alıyor. Bunu nasıl yapacağımı bir türlü bulamadım. Yada bana sıfırdan dediğim şekilde yönlendirme kodu yazabilecek arkadaşlar varsa çok menmun olurum. En son denediğim kodu şu aşağıdakidir. Deneme yanılma ile birşey öğrendim sanırım. Bazı yerlerde okudum. Culr ile yapılan işlemlerde daima sunucu ip sini baz aldığını öğrendim ama yinede bir yolu vardır diye düşünüyorum. Burdaki kodda google.com bizim vereceğimiz sahte referans url i diğeri whatsmyreferer.com ise gideceği hernagi bir url. Sonucu görmek için o siteyi ekledim. Eğerki sizde çalıştırırsanız göreceksiniz ip adresi olarak hostun sunucu ip ini verdiğini. Şimdiden teşekkürlerimi bildirmek isterim.
<?php
$ip = $_SERVER['REMOTE_ADDR'];
echo geturl('http://www.whatsmyreferer.com/', 'http://www.google.com');
function geturl($url, $referer) {
$headers[] = 'Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg,text/html,application/xhtml+xml';
$headers[] = 'Connection: Keep-Alive';
$headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8';
$useragent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)';
$process = curl_init($url);
curl_setopt($process, CURLOPT_HTTPHEADER, $headers);
curl_setopt($process, CURLOPT_HEADER, 0);
curl_setopt($process, CURLOPT_USERAGENT, $useragent);
curl_setopt($process, CURLOPT_REFERER, $referer);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_PROXY, $ip);
curl_setopt($process, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($process, CURLOPT_FOLLOWLOCATION, 0);
$return = curl_exec($process);
curl_close($process);
return $return;
}
?>