определение

Discussion in 'PHP' started by Doom123, 2 Oct 2009.

  1. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Здрасте =)

    Мне нужно определять если пользователь зашедший на сайт из спб или нет .. как я могу это сделать ?
     
  2. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    231
    Базы geoip поставить и сверять по ним ip пришедшего
     
    _________________________
  3. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    в базе разве не страна? мне нужен город ...
     
  4. [QwyZ]

    [QwyZ] Banned

    Joined:
    7 Jul 2009
    Messages:
    71
    Likes Received:
    27
    Reputations:
    5
    ip -> ripn -> grab
     
  5. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    аха .. на сайте 5к пользователей в день ... и 5 к запросов на ripn ? =)
     
  6. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    Если кому интересно ... поиск по диапазону из базы которую берём тут
    http://resident.su/ipgeo/
    PHP:
    <?php

    /**
     * @author @Fatal@
     * @copyright 2009
     */
     

    $exp =  explode("\r\n",file_get_contents('a.txt'));
    $a '0';

    function 
    f($b,$a,$qwe)
    {
        list(
    $z,$x) = explode(' - ',$b);

        
    $q explode('.',$z);
        
    $w explode('.',$x);
        
    $e explode('.',$_SERVER['REMOTE_ADDR');

    if(
    $q[0] === $e[0] && $q[1] === $e[1])
    {
        if(
    $qwe === $z || $x === $qwe)
            
    $qwe 1;
        elseif(
    $e[2] > $q[2] && $e[2] < $w[2])
            
    $qwe 1;
        elseif(
    $e[2] === $q[2] && $e[2] < $w[2])
            
    $qwe 1;
        elseif(
    $e[2] === $w[2] && $e[3] > $q[3] && $e[3] < $w[3])
            
    $qwe 1;
    }

    if(
    $qwe === 1)
        return 
    true;
        
    }
    array_walk($exp,'f',&$a);

    if(
    $a === 1)
        echo 
    'da';
    else
        echo 
    'net';
    ?>

    делал на скорую руку так что за корявый код срьте