Forum
Merhaba.
htaccess dosyasında (ya da daha iyi olacağını düşündüğünüz başka bir php tekniğiyle) siteyi ziyaret eden kullanıcıların geldiği şehre göre farklı html dosyasının açılmasını ya da mevcut bir html dosyasının içeriğinin farklı görünmesini nasıl sağlarız?
Bunu ip üzerinden belirlemek gerekiyor şehir olayını ki oda pek mümkün görünmüyor. Zira ip ler şehirleri pek doğru yansıtmıyor genelde. Ancak üyeler için böyle bir olay yapmak kolay tabiki.
Bunu ip üzerinden belirlemek gerekiyor şehir olayını ki oda pek mümkün görünmüyor. Zira ip ler şehirleri pek doğru yansıtmıyor genelde. Ancak üyeler için böyle bir olay yapmak kolay tabiki.
Crack sitelerinde ve çeşitli sitelerde gezerken "İzmir'li kızlar seni bekliyor" yazıyor fotoğraflı. Ben de izmir'deyim [:)] Bu nedenle mümkünsüzlüğünün olmadığını sanmıyorum.
Bilen birisi var mı tekniği? (Kod olursa memnun olurum).
Ha bir de Google Adwords için diyor ya; ziyaretçinizin geldiği şehre göre reklam gösteriyoruz diye.
Bu sanırım işin olabilirliğini gösteriyor 🙂
Ya tabiki oluyor. yani yukarıda mümkün görünmüyor derken kastettidğim şey olayın gerçekliği. izmirli kızlar olayından önce analyticsde bu net görünüyor ancak analytics verileride doğru sayılmaz ki. Onlarda tahmini. Amerika da ingilterede ip den şehir hatta mahalle sokak olarak bile yer tespit edebilirsiniz. Ancak Türkiyede bu şekilde değil. Türkiyenin ip dağarcığı bu kadar geniş değil. o yüzden otomatik ip alır modemler. ve yoğunluk doluluk durumuna göre bursadaki bir ip yi kütahya kullanabilir. ki bu ciddi derecede sapma oluşturuyor. Yani milyonda binde bir olan bir olay değil hatırı sayılır bir sıklıkta olan birşey. Tabiki yapılır. Bir sorun olduğunuda görmezsiniz belki. Ancak kütahyadan biren bir kişi hoş geldin bursalı yazısını görünce problem olabilir. 🙂
Ancak hayati derecede önemli ise yinede ip blokları bulunup gruplanır. ziyaretçinin ip adresi alınıp kıyaslanır. Yine biraz uğraştırır ama yine de verimli olacağını sanmıyorum. İlerleyen dönemlerde alt yapımız geliştiğinde belki daha verimli olabilir.
Merhabalar,
iki yöntemi var, ilki bu hizmeti veren sitelerden api desteği ile çekmek,
ikincisi ip range bilgilerini içeren db leri temin edip kullanmak.
ilk yöntem free ve kolay olmasından dolayı tercih edilebilir.
dezavantajı ise alınan sitedeki hizmetin kalıcı yada geçici olarak sona erme ihitimali küçükde olsa var.
bilgi dönmediğinde default sayfada bırakılması buna önlem olabilir.
ikincisinde ise eldeki dblerin zamanla güncellenmesi gerekebilir.
ayrıca bu yöntemde yazılacak kod çok.
ilk yöntem için demo adresi: http://orhan.ws/ip
(rdp ile 9 ilde test edip doğru sonuç aldım.)
sonuçlar yüzde 95 güvenilirdir.Büyük şehirlerde %100.
en kötü sonuç ise komşu şehir olabilir.
bu uygulamada kullanılan kodlar:
<?php
function locateIp($ip){
$d = file_get_contents("http://www.ipinfodb.com/ip_query.php?ip=$ip&output=xml&timezone=false");
if (!$d){
$backup = file_get_contents("http://backup.ipinfodb.com/ip_query.php?ip=$ip&output=xml&timezone=false");
$answer = new SimpleXMLElement($backup);
if (!$backup) return false; // Failed to open connection
}else{
$answer = new SimpleXMLElement($d);
}
$ip = $answer->Ip;
$country_code = $answer->CountryCode;
$country_name = $answer->CountryName;
$region_name = $answer->RegionName;
$city = $answer->City;
$zippostalcode = $answer->ZipPostalCode;
$latitude = $answer->Latitude;
$longitude = $answer->Longitude;
return array('ip' => $ip, 'country_code' => $country_code, 'country_name' => $country_name, 'region_name' => $region_name, 'city' => $city, 'zippostalcode' => $zippostalcode, 'latitude' => $latitude, 'longitude' => $longitude);
}
$ip = $_SERVER['REMOTE_ADDR'];
$ip_data = locateIp($ip);
echo "IP : " . $ip_data['ip'] . "\n<br>";
//echo "Ülke Kodu : " . $ip_data['country_code'] . "\n<br>";
echo "Ülke : " . $ip_data['country_name'] . "\n<br>";
//echo "Bölge Adı : " . $ip_data['region_name'] . "\n<br>";
echo "Şehir : " . $ip_data['city'] . "\n";
//echo "Posta kodu : " . $ip_data['zippostalcode'] . "\n<br>";
//echo "Enlem: " . $ip_data['latitude'] . "\n<br>";
//echo "Boylam: " . $ip_data['longitude'] . "\n<br>";
?>
Ben tıkladım. Mümkünse büyük şehirlerde olmayan arkadaşlar varsa onlarda paylaşabilirler. bende izmir yazıyor. halbuki kütahyadayım. Bu gibi yankışlar olabiliyor...
Buraya resim eklemek ölüm gerçekten.
upload linkini veriyorum...
Almanya Üzerinden Nete çıkıyoruz. Ve sonuç doğru
Sonuç Aşağıda
IP : 91.2xx.xx.xx
Ülke : Germany
Şehir : Waldkirch
Bütün sorunları Orhan bey mi çözer kardeşim [:D]
Çok teşekkürler. İşte aradığım !TAM OLARAK! buydu.
Son bir soru daha; bunu htaccess dosyası ile yapmak mümkün mü?
Yani ziyaretçinin şehrine göre index_us.html , index_tr.html , index_de.html dosyalarının açılması mümküm müdür?
Tabiki Mümkündür. bahsettiğin sitelerde bunun zaten kanıtıdır.
Ama bütün şehirleri tutturamazsin. ADSL DAĞITIM MERKEZLERİNE göre değişir
Mesela ben Adiyaman / kahta ilçesinde oturuyorum.
Ben int.Girmek istediğim zaman.
DAĞİTİM MERKEZİ Kahta Tekelom Portuna bağlaniyorum / Adiyaman Telekom / Diyarbakır ADSL (tam olarak neisim verdikleri bilmiyorum ama mantık öyle.) Türkiye ADSL DAĞİTİM ... / DAĞITIM MERKEZLERİNE verilen İP LER BELLİDİR.
Mesela diyarbakir bölgesine(Güneydoğu)
85.250.*.* 78.36.*.* gibi ip aralıklari verilir dağitim merkezide kendisi bağlanana adsl kullanicilara bu iplerden birer tane vererek internete erişim sağlar.
oturduğunuz yerin büyük bir şehir olmasi ve dağitim merkezi olmasindan doğru çıkıyor.
Kerim bey mümkünlük kısmını çözdük de nasıl mümkün yapılacağı ile ilgili .htaccess içeriğini bir türlü elde edemedik [:(]