Amigo, la verdad llegar hasta el punto de saber la ciudad es un tema de locos, ya que la empresa a nivel mundial encargada de entregar direcciones IP (
IANA (Internet Assigned Number Authority)) las entrega a los ISP por rangos, entonces los ISP lo que hacen es segmentar dichas IP como ellos quieran.
Tendrías que saber como maneja la segmentación de IP los ISP de tu país para llegar a saber la ciudad, provincia o región.
Lo máximo que se puede llegar a hacer es obtener el país ya que la empresa encargada de asignarla tiene un rangos por continentes y países, pero las ciudades las manejan los ISP.
Espero que te sirva de ayuda.