ciao, esiste un db a pagamento (http://maxmind.com), ma se vuoi una cosa free guarda questo : http://freegeoip.appspot.com

e lo puoi usare ad esempio così :

codice:
            string ip = "128.186.4.192";
            XmlDocument doc = new XmlDocument();
            doc.Load("http://freegeoip.appspot.com/xml/"+ip);
            string citta = doc.GetElementsByTagName("City").Item(0).InnerText;