Hola, si, hay varias formas, aquí podes encontrar información sobre lo que buscas:
https://www.google.com/search?q=python+geoipEn Python existe una librería llamada GeoIP, pero hay otras formas también:
1) Usar un servicio online para hacer un whois a la IP.
2) Descargar una base de datos con rangos de IPs separados por países, yo llegué a hacer eso mismo hace ya varios años, como las IPs tienen puntos, entonces yo eliminé los puntos dejándolos como números enteros para poder compararlos, pero aquí tuve un problema porque la función range() no soportaba números tan grandes, entonces pensé que lo iba a solucionar con xrange() que soporta más longitud pero tampoco fue suficiente... así que tuve yo mismo que crear mí propia función.
3) Usando un servicio online que devuelva en JSON el país y la localidad de una IP.
Lo demás es sólo buscar.
Saludos