I was wondering if there was a way to determine the user country name in php without any api or third party help.
PHP has a built in GeoIP that does just that.
You might have to install it as a plugin, which should be too hard...
No, there isn't, unless you want to maintain your own database of (country, IP range) pairs.
However, if you want information about a visitor's language, an alternative solution would be to process $_SERVER['HTTP_ACCEPT_LANGUAGE']
. Note that it's not a trivial task, as it can hold multiple languages (with different preferences) and it could hold unknown langauges to your program. Furthermore, this value can be manipulated by a malicious user, so the usual precautions when dealing with user input are necessary.