Show GeoIP Badge On Your Website Using PHP And JavaScript
Remember my last article about how to show visitor’s ip address on our website? today, we will modify the script a little bit to do something more interesting, not only displaying visitor’s ip address but also displaying visitor’s country and flag. Unfortunately this script unable displaying the flag and country for ipv6 yet. The badge will look something like this.
[cfields]geoipbadge[/cfields]
First thing we have to do is create badge generator, which we will use later. let’s call it geo.php
<?php if ( isset($_SERVER["REMOTE_ADDR"]) ) { $IpAddr=$_SERVER["REMOTE_ADDR"]; } $cc = geoip_country_code_by_name($IpAddr); $country = geoip_country_name_by_name($IpAddr); ?> if (typeof(v_geo_BackColor)=="undefined") v_geo_BackColor = "white"; if (typeof(v_geo_ForeColor)=="undefined") v_geo_ForeColor= "black"; if (typeof(v_geo_FontPix)=="undefined") v_geo_FontPix = "16"; if (typeof(v_geo_DisplayFormat)=="undefined") v_geo_DisplayFormat = "You are visiting from:<br>IP Address: %%IP%%%%FLAG%% %%COUNTRY%%"; if (typeof(v_geo_DisplayOnPage)=="undefined" || v_geo_DisplayOnPage.toString().toLowerCase()!="no") v_geo_DisplayOnPage = "yes"; v_geo_HostIP = "<?php echo $IpAddr; ?>"; v_geo_Country = "<?php echo $country; ?>"; <?php if ( $cc != FALSE ) { ?> v_geo_Flag = "<br><img src='http://www.example.com/flags/<?php echo strtolower($cc); ?>.png' />"; <?php } else { ?> v_geo_Flag = ""; <?php } ?> if (v_geo_DisplayOnPage=="yes") { v_geo_DisplayFormat = v_geo_DisplayFormat.replace(/%%IP%%/g, v_geo_HostIP); v_geo_DisplayFormat = v_geo_DisplayFormat.replace(/%%FLAG%%/g, v_geo_Flag); v_geo_DisplayFormat = v_geo_DisplayFormat.replace(/%%COUNTRY%%/g, v_geo_Country); document.write("<table border='0' style='padding: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; -khtml-border-radius: 5px; border-radius: 5px; background-color:" + v_geo_BackColor + "; color:" + v_geo_ForeColor + "; font-size:" + v_geo_FontPix + "px'><tr><td>" + v_geo_DisplayFormat + "</td></tr></table>"); }