PHP - geoIP country redirect

webdevel's Avatar, Join Date: Feb 2011
Newbie Member
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 shabbir; 20Feb2011 at 08:30.. Reason: Code blocks
0
lionaneesh's Avatar, Join Date: Mar 2010
Invasive contributor
Quote:
Originally Posted by webdevel View Post
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');
}
?>
The code looks perfectly fine to me...
Whats the error can you specify..
0
webdevel's Avatar, Join Date: Feb 2011
Newbie Member
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
0
etiergjt's Avatar
Light Poster
hmm,where did you find that ip range file?can you send me a copy?
0
webdevel's Avatar, Join Date: Feb 2011
Newbie Member
Go to maxmind.com
shabbir like this
0
etiergjt's Avatar
Light Poster
Quote:
Originally Posted by webdevel View Post
Go to maxmind.com
thanks for your reply,but it's expensive,any cheaper solution for this?
0
webdevel's Avatar, Join Date: Feb 2011
Newbie Member
It's free. What you want to download is GeoLite Country. It's 99.5% accurate
0
etiergjt's Avatar
Light Poster
Quote:
Originally Posted by webdevel View Post
It's free. What you want to download is GeoLite Country. It's 99.5% accurate
oh,I see
I didn't notice the free/opensource link
Thanks
0
pidge1992's Avatar, Join Date: Aug 2011
Newbie Member
but that code is not working for me

anyone can help ?