Das Auslesen einer IP-Adresse funktioniert immer nur Server-Seitig, d.H. mittels einer Scriptsprache wie PHP oder Programmiersprache wie Java ist das möglich. Die weitverbreitete Meinung, dies könnte mit Javascript funktionieren, ist falsch. Javascript wird Client-Seitig ausgeführt.
Heutzutage wird sehr oft PHP eingesetzt. Hier das Beispiel: $HTTP_SERVER_VARS['REMOTE_ADDR']
Mehr braucht's nicht.
Mit $HTTP_SERVER_VARS kann man u.a. auch das Betriebssystem und den Browser auslesen.
Das Erkennen des Herkunftslandes ist da schon gefinkelter, da dies nicht über die Sprache möglich ist. Hierzu muss man einen Drittanbieter konsultieren. Meistens wird ein sogenannter WHOIS-Server für diesen Zweck verwendet. Dieser Dienst ist eher für die Abfrage von Daten eines Domainregistrars bekannt, hat aber auch IP / AS1 Informationen gespeichert.
1Autonomous System. Zusammenfassung einer Gruppe von IP-Netzwerken unter administrativer Verwaltung. Die AS-Nummer dient für die Identifikation eines autonomen IP-Netzwerks.