Skip to main content
PHP ile Adres Öğrenme

PHP ile IP Adreslerini İl,Ülke Şeklinde Kaydetme

Web sitemize giren kullanıcıların ip adresini öğrenmenin birden çok yolu var 🙂 Fakat bu ip adreslerinin hangi ilden ve ya hangi ülkeden girdiğini öğrenme gereği duyabiliriz.  Kendim için geliştirmiş olduğum bu küçük script web sitemize giren ip adreslerini coğrafi konumunu kaydederek il ülke şeklinde belirlemiş olduğumuz log.html dosyasına kaydeder.

İşte Kodlarımız


<?php
//
// Yurdakul SEZGİN
// www.sezgin.net.tr
// Coğrafi IP Takibi
// 22/10/2015
//

session_start();

// ## KULLANICININ DOĞRU İP ADRESİNİ ÖĞRENELİM!
function ipogrenme(){
if(getenv("HTTP_CLIENT_IP")){
$ip = getenv("HTTP_CLIENT_IP");
}else if(getenv("HTTP_X_FORWARDED_FOR")){
$ip = getenv("HTTP_X_FORWARDED_FOR");
if(strstr($ip, ',')) {
$tmp = explode (',', $ip);
$ip = trim($tmp[0]);
}
}else{
$ip = getenv("REMOTE_ADDR");
}
return $ip;
}
// ## LOG DOSYASI YAZALIM
function logla($logmetin){
$dosya = 'log.html';
$metin = date('d-m-Y h:i - ').$logmetin.'<br/>';
$fh = fopen($dosya, 'a+') or die('Hata!');
fwrite($fh, $metin);
fclose($fh);
$_SESSION['ipadreskayit'] = true;
}

// ## ŞEHİR BİLGİSİNİ BULALIM
if(!isset($_SESSION['ipadreskayit'])){
function sehir_bul($ip){
$default = 'Bilinmiyor';
if (!is_string($ip) || strlen($ip) < 1 || $ip == '127.0.0.1' || $ip == 'localhost'){
$ip = '8.8.8.8';
}
$curlopt_useragent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.71 Safari/537.36';
$url = 'http://www.ipsorgu.com/?ip=' . urlencode($ip) . '#sorgu';
$ch = curl_init();
$curl_opt = array(
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_USERAGENT => $curlopt_useragent,
CURLOPT_URL => $url,
CURLOPT_TIMEOUT => 1,
CURLOPT_REFERER => 'http://' . $_SERVER['HTTP_HOST'],
);
curl_setopt_array($ch, $curl_opt);
$content = curl_exec($ch);
curl_close($ch);

if(preg_match('#\<title>(.*?)\</title>#', $content, $regs)){
$city = $regs[1];
}
if($city != ''){
$metin = explode('-', $city);
logla($metin[0]);
}else{
return $default;
}
}
sehir_bul(ipogrenme());
}

?>

Özellikleri

  • Her ip adresini session oturum ile 1 kere kaydeder.
  • Belirtilen log dosyasına kaydeder. (log.html)
  • Küçük olduğundan her türlü scripte entegre edilebilir.

Aşağıdaki ekran görüntüsünden örnek log dosyasını görebilirsiniz.

Örnek IP Log Dosyası
Örnek IP Log Dosyası

Sonsöz (:

 

Kendi ihtiyaçlarım doğrultusunda geliştirdiğim bu script sayesinde sitenize giren kullanıcıların ip adreslerini ve bu ip adreslerin coğrafi konumunu il, ülke şeklinde kaydedebilirsiniz. Güle güle kullanın 😉

sezgin

1993 doğma büyüme Rizeli! Yeşil ve doğa düşkünü olup sıkı bir hayvan sever. Bilgisayar ile haşır neşir, Web yazılım aşığı, kahve olmazsa olmazı. Karadeniz gibi kimi zaman durgun kimi zaman asabi! Detaylı hakkında sayfam.

7 thoughts to “PHP ile IP Adreslerini İl,Ülke Şeklinde Kaydetme”

  1. hocam bunu nasıl veritabanına kaydedebiliriz yardım eder misiniz?

    bu arada hata alan arkadaşlar sunucularında CURL ün açık olup olmadıgına baksın.

  2. Merhabalar,

    Teşekkür etmek istiyorum emeğinize sağlık. Şuan işim acele olduğu için kullandım biraz daha geliştirip burada da paylaşacağım tekrar teşekkür eder. Saygılarımı sunarım.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir