1. We have moved from vBulletin to XenForo and you are viewing the site in the middle of the move. Though the functional aspect of everything is working fine, we are still working on other changes including the new design on Xenforo.
    Dismiss Notice

PHP - geoIP country redirect

Discussion in 'PHP' started by webdevel, Feb 20, 2011.

  1. webdevel

    webdevel New Member

    Joined:
    Feb 20, 2011
    Messages:
    4
    Likes Received:
    1
    Trophy Points:
    0
    I could really use some help with a problem I'm having. I've read as many posts as i can find on this topic but unfortunatly I still cant get it to work.

    I would like to redirect visitors to different sites depending on their country. I just can't get this to work. Any help would be very much appreciated. Here is what I've got:

    Code:
    <?php
    require_once('geoip.inc');
    $gi = geoip_open('GeoIP.dat', GEOIP_MEMORY_CACHE);
    $country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
    geoip_close($gi);
     
    if ($country == 'ca') { 
    header('Location: example.ca');
    }
    if ($country == 'nz') { 
    header('Location: example.co.nz');
    }
    if ($country == 'uk') { 
    header('Location: example.co.uk');
    }
    if ($country == 'us') { 
    header('Location: example.info');
    }
    ?>
     
    Last edited by a moderator: Feb 20, 2011
  2. lionaneesh

    lionaneesh New Member

    Joined:
    Mar 21, 2010
    Messages:
    848
    Likes Received:
    224
    Trophy Points:
    0
    Occupation:
    Student
    Location:
    India
    The code looks perfectly fine to me...
    Whats the error can you specify..
     
  3. webdevel

    webdevel New Member

    Joined:
    Feb 20, 2011
    Messages:
    4
    Likes Received:
    1
    Trophy Points:
    0
    I figured out that I could fix my problem with the following:

    <?php
    require_once('geoip.inc');
    $gi = geoip_open('GeoIP.dat', GEOIP_MEMORY_CACHE);
    $country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
    geoip_close($gi);
    $my_countries = 'us';
    if (strtolower($country) == $my_countries) {
    header('Location: example.us');
    }
    $my_countriess = 'nz';
    if (strtolower($country) == $my_countriess) {
    header('Location: example.co.nz);
    }
    $my_countriesss = 'uk';
    if (strtolower($country) == $my_countriesss) {
    header('Location: example.co.uk');
    }
    $my_countriessss = 'ca';
    if (strtolower($country) == $my_countriessss) {
    header('Location: example.ca');
    }
    ?>

    Thanks anyway for your help :)
     
  4. etiergjt

    etiergjt New Member

    Joined:
    Mar 21, 2011
    Messages:
    9
    Likes Received:
    0
    Trophy Points:
    0
    Home Page:
    hmm,where did you find that ip range file?can you send me a copy?
     
  5. webdevel

    webdevel New Member

    Joined:
    Feb 20, 2011
    Messages:
    4
    Likes Received:
    1
    Trophy Points:
    0
    Go to maxmind.com
     
    shabbir likes this.
  6. etiergjt

    etiergjt New Member

    Joined:
    Mar 21, 2011
    Messages:
    9
    Likes Received:
    0
    Trophy Points:
    0
    Home Page:
    thanks for your reply,but it's expensive,any cheaper solution for this?
     
  7. webdevel

    webdevel New Member

    Joined:
    Feb 20, 2011
    Messages:
    4
    Likes Received:
    1
    Trophy Points:
    0
    It's free. What you want to download is GeoLite Country. It's 99.5% accurate
     
  8. etiergjt

    etiergjt New Member

    Joined:
    Mar 21, 2011
    Messages:
    9
    Likes Received:
    0
    Trophy Points:
    0
    Home Page:
    oh,I see
    I didn't notice the free/opensource link
    Thanks
     
  9. pidge1992

    pidge1992 New Member

    Joined:
    Aug 2, 2011
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    0
    but that code is not working for me :(

    anyone can help ?
     

Share This Page