База GeoIP

Discussion in 'PHP' started by Qb1024, 25 Jun 2011.

  1. Qb1024

    Qb1024 New Member

    Joined:
    15 Jul 2009
    Messages:
    323
    Likes Received:
    4
    Reputations:
    0
    Где найти базу GeoIP и скрипт к ней, чтобы по IP адресу показал бы ближайший город, особая точность не нужна.
    База должна быть бесплатной, хочу сделать на ней визуальную трасировку.
     
  2. FewG

    FewG Member

    Joined:
    25 Dec 2009
    Messages:
    136
    Likes Received:
    12
    Reputations:
    0
    _ttp://maxmind.com/app/geolitecity
     
  3. Qb1024

    Qb1024 New Member

    Joined:
    15 Jul 2009
    Messages:
    323
    Likes Received:
    4
    Reputations:
    0
    Я лазил в гуголь)
    На этом сайте тока 25 определений в день бесплатно.
    Потом, для API нужно ставить модули к апатчу или php, а хостер этого не позволит.

    Страну определить не проблема, а вот город уже непросто

    Был не прав, нашёл 130 метровую бесплатную базу в CSV. Ща попробую использовать её...
    Мда, на хостинг её засунуть всю нельзя, а местные API требуют установки модуля...
     
    #3 Qb1024, 25 Jun 2011
    Last edited: 25 Jun 2011
  4. Qb1024

    Qb1024 New Member

    Joined:
    15 Jul 2009
    Messages:
    323
    Likes Received:
    4
    Reputations:
    0
    Неужели нет сторонних сервисов, которые предоставляют нормальные GET API?
     
  5. FewG

    FewG Member

    Joined:
    25 Dec 2009
    Messages:
    136
    Likes Received:
    12
    Reputations:
    0
    Дат-Файл 30 метров :D http://l2jexodus.com/v2/ip/
     
  6. Qb1024

    Qb1024 New Member

    Joined:
    15 Jul 2009
    Messages:
    323
    Likes Received:
    4
    Reputations:
    0
    МММ, файл в архиве 30 метров, распаковал, там 120 метров.
    А та картинка неправильно определила город)
     
  7. FewG

    FewG Member

    Joined:
    25 Dec 2009
    Messages:
    136
    Likes Received:
    12
    Reputations:
    0
    GeoLiteCity 30 MB when uncompressed, last updated June 1st, 2011, next update July 1st, 2011)

    ПыСы: Лайт версия 79% точности, Фулл 83%.
     
  8. Qb1024

    Qb1024 New Member

    Joined:
    15 Jul 2009
    Messages:
    323
    Likes Received:
    4
    Reputations:
    0
    Всё равно многовато, на хостинг мона грузить тока по 100 кб файлы в phpMyAdmin, замучаюсь, а скрипт писать неохота...
     
  9. FewG

    FewG Member

    Joined:
    25 Dec 2009
    Messages:
    136
    Likes Received:
    12
    Reputations:
    0
    Это не SQL-Файл :eek: Инлюдишь в пхп и вуаля.
     
  10. Qb1024

    Qb1024 New Member

    Joined:
    15 Jul 2009
    Messages:
    323
    Likes Received:
    4
    Reputations:
    0
    Ммм, как можно dat использовать в php, мануальчик бы.
     
  11. FewG

    FewG Member

    Joined:
    25 Dec 2009
    Messages:
    136
    Likes Received:
    12
    Reputations:
    0
    Гугл всё дает, если с ним дружить, но я не злой и помогу ;) :

    Code:
    <?php
    include ("geoip.inc");
    include ("geoipcity.inc");
    include ("geoipregionvars.php");
    
    $con = geoip_open ( "GeoIP.dat" );
    $IP = $_SERVER['REMOTE_ADDR'];
    $country = geoip_country_name_by_addr ( $con, $IP );
    $code = geoip_country_code_by_addr ( $con, $IP );
    geoip_close ( $con );
    
    $conn = geoip_open ( "GeoLiteCity.dat" );
    $record = GeoIP_record_by_addr ( $conn, $IP );
    geoip_close ( $conn );
    
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>IP Detector o_O</title>
    </head>
    <body bgcolor="#000">
    <center><font size="5" color="YELLOW">IP: <?php
    echo $IP . " -> " . $country . " (" . $code . ") близ " . $record->city;
    ?></font><br>
    <img src="http://demotivation.me/images/20101019/ylysgiexj0mt.jpg"></center>
    </body>
    </html>
     
  12. Qb1024

    Qb1024 New Member

    Joined:
    15 Jul 2009
    Messages:
    323
    Likes Received:
    4
    Reputations:
    0
    Спсибо, разобрался)
     
  13. moffin

    moffin Banned

    Joined:
    17 Jun 2011
    Messages:
    0
    Likes Received:
    2
    Reputations:
    -4
    у меня
     
  14. Qb1024

    Qb1024 New Member

    Joined:
    15 Jul 2009
    Messages:
    323
    Likes Received:
    4
    Reputations:
    0
    Конкретнее?
    IP, доменное имя?
     
  15. dister

    dister New Member

    Joined:
    15 Jan 2011
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0

    Итак, объясню без мануальчика, постараюсь.

    Для начала получаем архив с GeoIp.dat и GeoIp.php.
    PHP:
    http://depositfiles.com/ru/files/eocp0zxzn
    Далее создаем функцию определения страны, предрарительно подключив библиотеку geoip.php
    PHP:
    require_once( "geoip.php" );
    PHP:
    function getcountry( )
    {
        
    $geo geoip_open"GeoIP.dat"GEOIP_STANDARD );
        
    $cnt geoip_country_code_by_addr$geo$_SERVER['REMOTE_ADDR'] );
        if ( !
    $cnt )
        {
            
    $cnt "-";
        }
        
    geoip_close$geo );
        return 
    $cnt;
    }
    И далее просто вызываем эту функцию, то есть :
    PHP:
    $strana getcountry( );

    Так же можно определить не только IP, который попал на страницу, а любой другой, изменив немного функцию.


    Как то вот так.


    Упс... Не видел второй страницы. Все оказывается решили до меня :D