Today I had the idea of compiling an automatic list of how many spam comments I get from the same country.
After a bit of research I have begun by finding out how to get country names from an IP address.
This is the code I used:
/**
* Adds Location Finder shortcode.
*/
add_shortcode('location_finder', 'location_finder_shortcode');
/**
* Checks the country of the IP address.
*
* ip: [location_finder ip="45.12.177.193"]
*
*/
function location_finder_shortcode($atts) {
$result = "N/A";
$ip_address = $atts['ip'];
$geopluginURL = 'http://www.geoplugin.net/php.gp?ip=' . $ip_address;
$geoip_response = unserialize( file_get_contents( $geopluginURL ) );
if ( ! empty( $geoip_response ) ) {
$result = $geoip_response['geoplugin_countryName'];
}
return $result;
}
This uses the GeoPlugin service (requires no sign up or actual plugin, the code above can simply be pasted into function.php).