Geo-Targeted URLS?

blackxxxer

BANNED
Oct 29, 2008
136
57
Does anyone know of or have a script that geo-targets url's by country? I need something that will detect the ip/country & send the user to a URL based off country?

Thanks
 
Use the power of SEARCH button... :p

My script....
one among many on this forum
PHP:
<?php 

// Get country code corresponding to an IP address 



function get_country_code ($ip) {

$c = curl_init();

curl_setopt($c, CURLOPT_URL, "http://www.topwebhosts.org/whois/index.php?query=$ip");//otwieramy Å‚acze ze strona

curl_setopt($c, CURLOPT_HEADER, 1);

curl_setopt($c, CURLOPT_VERBOSE, 1);

curl_setopt($c, CURLOPT_RETURNTRANSFER,1);

curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686;pl; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3');

curl_setopt($c, CURLOPT_ENCODING, 'gzip');

curl_setopt($c, CURLOPT_ENCODING, 'deflate');

curl_setopt($c, CURLOPT_ENCODING, '');

curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);

$page = curl_exec($c);

$code = explode('country',$page);

$code = explode(':',$code[1]);

$code = explode('admin-c:',$code[1]);

$country_code=trim($code[0],"admin-c:");

return $country_code;

}

// Detect user's IP address

$user_ip = $_SERVER["REMOTE_ADDR"];



// COUNTRY CODE, eg. us, fr, vn

$country_code = get_country_code($user_ip);



switch($country_code)

    {

        case 'US':

            //redirect to US page            

            break;

        case 'UK':

            //redirect to FR page            

            break;

        case 'CAN':

            //redirect to CAN page            

            break;

        case 'AUS':

            //redirect to AUS page            

            break;

//etc...etc...etc here you can ad more countries 

        default://other coutries

            //default redirect

    }





?>
 
Download and use ip2nation.com Mysql database and scripts, they are free. Also you can use openads it's an open source ad management application.:yield:
 
I use maxmind with the free geolite db which is quite accurate and updated monthly. You could always buy the commercial db if you needed to and use the same code. The only thing that would change is the binary db you download.

I have posted a script already as well as instructions here already :


http://www.blackhatworld.com/blackh...ne-code-me-php-geo-targetting.html#post410382


Personally I would not use geotargetting code where you cannot keep the db locally as you introduce a dependency of an external http call to get the results and this could fail. Just another thing that can fail. This is just my opinion.

Hope this helps!
 
Code:
http://nytemarez.com/geofiltering-the-right-way/

I'd prefer to not use a mysql db for geofiltering since it would mean importing data every month into a db AND would make it a much bigger pain in the ass to move to other servers. Using the method I posted with a binary db file you could just copy the files to another server for a working solution.

Each to their own, I guess.

BTW, not sure you should be promoting your new blog on your 1st post with a live link!
 
I'd prefer to not use a mysql db for geofiltering since it would mean importing data every month into a db AND would make it a much bigger pain in the ass to move to other servers. Using the method I posted with a binary db file you could just copy the files to another server for a working solution.

With binary files (even with PEAR) you are making access incredibly slow compared to a well-indexed database table. Also I don't find it very hard to setup a cronjob which basically imports the new database everyday. If you setup a UNIQUE-constraint on start_ip and end_ip you will have no problems importing it in less than 30 secs. Don't know about you, but for my solution I needed very quick data access, especially since I'm getting alot of hits everyday.
 
Yeah I use maxmind's commercial DB, considering the amount of money that is at stake $15/month for accurate country codes is well worth it to me.
 
With binary files (even with PEAR) you are making access incredibly slow compared to a well-indexed database table. Also I don't find it very hard to setup a cronjob which basically imports the new database everyday. If you setup a UNIQUE-constraint on start_ip and end_ip you will have no problems importing it in less than 30 secs. Don't know about you, but for my solution I needed very quick data access, especially since I'm getting alot of hits everyday.

http://pecl.php.net/package/geoip if you need as fast as possible, there is nothing faster (not even sql queries) to get the data from the maxmind stuff
 
Back
Top
AdBlock Detected

We get it, advertisements are annoying!

Sure, ad-blocking software does a great job at blocking ads, but it also blocks useful features and essential functions on BlackHatWorld and other forums. These functions are unrelated to ads, such as internal links and images. For the best site experience please disable your AdBlocker.

I've Disabled AdBlock