mira, se de buena fuente que utilizando la clase ip2country se puede saber de que pais es el ip, pero para saber la ciudad al parecer necesitas la version comercial (pagada obviamente), te paso la direccion para descargar el ip2country:
http://www.phpclasses.org/browse/package/1477.html
espero haber sido de ayuda