You can get all of the information you're after from my API at http://ipinfo.io API:
$ curl ipinfo.io
{
"ip": "67.188.232.131",
"hostname": "c-67-188-232-131.hsd1.ca.comcast.net",
"city": "Mountain View",
"region": "California",
"country": "US",
"loc": "37.4192,-122.0574",
"org": "AS7922 Comcast Cable Communications, Inc.",
"postal": "94043"
}
It supports JSONP and CORS, so you can use it either server or client side. More details are available at http://ipinfo.io/developers