ipdata.co provides an API endpoint (https://api.ipdata.co) that provides such information (I run this service)
Ipdata has 10 endpoints around the world each able to handle >800M calls daily!
curl https://api.ipdata.co/70.70.70.70?api-key=test
This answer uses a 'test' API Key that is very limited and only meant for testing a few calls. Signup for your own Free API Key and get up to 1500 requests daily for development.
Gives
{
"ip": "70.70.70.70",
"is_eu": false,
"city": "",
"region": "",
"region_code": "",
"country_name": "Canada",
"country_code": "CA",
"continent_name": "North America",
"continent_code": "NA",
"latitude": 43.6319,
"longitude": -79.3716,
"asn": "AS6327",
"organisation": "Shaw Communications Inc.",
"postal": "",
"calling_code": "1",
"flag": "https://ipdata.co/flags/ca.png",
"emoji_flag": "\ud83c\udde8\ud83c\udde6",
"emoji_unicode": "U+1F1E8 U+1F1E6",
"languages": [
{
"name": "English",
"native": "English"
},
{
"name": "French",
"native": "Fran\u00e7ais"
}
],
"currency": {
"name": "Canadian Dollar",
"code": "CAD",
"symbol": "CA$",
"native": "$",
"plural": "Canadian dollars"
},
"time_zone": {
"name": "",
"abbr": "",
"offset": "",
"is_dst": "",
"current_time": ""
},
"threat": {
"is_tor": false,
"is_proxy": false,
"is_anonymous": false,
"is_known_attacker": false,
"is_known_abuser": false,
"is_threat": false,
"is_bogon": false
},
}