29 Ağustos 2009 Cumartesi

Video Oyunları Orkestrası - Video Games Orchestra

GDnet'in facebook sayfasında karşılaştım, böyle bir orkestra varmış. Youtube sayfalarını da inceledim, eski oyunları oynamışlığınız varsa kesinlikle bir ara ziyaret etmelisiniz. Hepsini izlemek isterseniz http://www.youtube.com/user/VGOOnline#play/all adresine tıklayınız. Bende birkaç tane seçtim sizin için, iyi seyirler :)

Super Mario Medley (5/8/2009 @ IGC East '09)


Donkey Kong Medley (3/5/2009 @ BPC) Laptop hoparlörleri ile dinliyorsanız pek bişey duyamayabilirsiniz.


Super Mario Galaxy: Wind Garden (5/8/2009 @ IGC East '09)



Chrono Trigger Medley (5/8/2009 @ IGC East '09)


Linkler
Anasayfa:
http://www.vgo-online.org/
Youtube Sayfası:
http://www.youtube.com/user/VGOOnline#play/all

9 Ağustos 2009 Pazar

Bilgisayarın IP'sinden Bağlandığı Ülke Nasıl Bulunur ?

Web sitenize giren kullanıcıların hangi ülkeden bağlandığını öğrenmek isteyebilirsiniz, böylelikle onlara uygun bir sayfa veya karşılama metni gösterebilirsiniz. Bu yazıda, geo ip veritabanı kullanarak, bunu nasıl yapılacağını anlatacağım.

Öncelikle işe veritabanı için gerekli csv dosyasını indirmekle başlıyoruz. Csv dosyasını http://www.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip adresinden indirebilirsiniz.

İndirme işlemi tamamlandıktan sonra, bu dosyayı uygun bir veritabanına aktarmamız gerekiyor. Herhangi bir veritabanı oluşturun, ya da hali hazırdaki bir veritabanını kullanın. Daha sonra bu veritabanında bir tablo yaratın. Bu tablonun ismi 'geoip' olabilir. Uygun bir tablo oluşturmak için, aşağıdaki kodu çalıştırabilirsiniz.

CREATE TABLE IF NOT EXISTS `geoip` (
`start_ip` char(15) NOT NULL,
`end_ip` char(15) NOT NULL,
`start` int(10) unsigned NOT NULL,
`end` int(10) unsigned NOT NULL,
`cc` char(2) NOT NULL,
`cn` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Şimdi bu tabloya, indirdiğimiz csv'deki verileri yükleyeceğiz. Bunun için, indirdiğiniz csv dosyasının yerini bilmeniz gerekiyor. Aşağıdaki SQL sorgusunu

çalıştırdığınızda csv dosyası veritabanına yüklenecektir.

LOAD DATA LOCAL INFILE [dosyanın yolu] INTO TABLE [tablo adı] FIELDS TERMINATED BY [kolon ayıracı] ENCLOSED BY [kapatma işareti] LINES TERMINATED BY [satır ayıracı];

Yukarıdaki koddan tam anlaşılmayabilir. Ben kendi durumum için doldurduğumda aşağıdaki sonucu elde ediyorum.

LOAD DATA LOCAL INFILE 'c:\\GeoIPCountryWhois.csv' INTO TABLE geoip FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';

Tablomuz hazır olduğuna göre, küçük bir php script'i ile ip'lerin hangi ülkeye ait olduğunu bulabilirsiniz.

<?php
$pth = "localhost";
$user = "root";
$psw = "123456";
$dbname = "country";

$con = mysql_connect($pth,$user,$psw);

if (!$con)
{
     die("Veritabanı bağlantısı sağlanamıyor: " . mysql_error());
}

mysql_select_db($dbname, $con);

// IPden Ülke kodunu ve ismini array olarak döndüren fonksiyon.
function getCountry($ip) {

          $ip = explode(".",$ip);
          
          $result = 16777216 * $ip[0] + 65536 * $ip[1] + 256 * $ip[2] + $ip[3];
          
          $sql = "SELECT cc, cn FROM geoip WHERE ".$result." BETWEEN start AND end";
          $result = mysql_query($sql);
          $country[0] = mysql_result($result,0,"cc");
          $country[1] = mysql_result($result,0,"cn");
          if(empty($ccode)) $ccode = "default";
          return $country;
}

$myip = $_SERVER['REMOTE_ADDR'];
$myip = "85.100.153.122"; // eğer localhostta çalıştırısanızi 127.0.0.1 döneceğinden, herhangi bir ülke bulunmayacaktır.
                // O yüzden örnek olarak bir ip adresi yazıyorum buraya, scripti kullanırken silmeyi unutmayın.
echo "IP Address = <b>".$myip."</b><br>n";
$code = getCountry($myip);
echo "Code = <b>".$code[0]."</b><br>n";
echo "Country = <b>".$code[1]."</b><br>n";

?>