Skip to content

Instantly share code, notes, and snippets.

@sdelamo
Created May 2, 2015 08:04
Show Gist options
  • Save sdelamo/2c641d09a1d949b1739c to your computer and use it in GitHub Desktop.
Save sdelamo/2c641d09a1d949b1739c to your computer and use it in GitHub Desktop.
Groovy Script to get city name by IP
def cityByIP = { ip, provider, apikey ->
if(provider == "ip-api") {
String urlStr = "http://ip-api.com/json/${ip}?callback=yourfunction"
try {
def data = new URL(urlStr).getText()
int indexOfCity = data.indexOf('city')
indexOfCity += 'city":"'.size()
int indexOfCountry = data.indexOf('country')
indexOfCountry -= '","'.size()
return data.substring(indexOfCity, indexOfCountry)
} catch (java.io.IOException e) {
println "error:" + urlStr
return nil
}
} else if(provider == "infodb") {
String urlStr = "http://api.ipinfodb.com/v3/ip-city/?key=${apikey}&ip=${ip}&format=json"
try {
def data = new URL(urlStr).getText()
println data
int indexOfCity = data.indexOf('cityName')
indexOfCity += '"cityName": "'.size()
int indexOfCountry = data.indexOf('zipCode')
indexOfCountry -= '", "'.size()
return data.substring(indexOfCity, indexOfCountry)
} catch (java.io.IOException e) {
println "error:" + urlStr
return nil
}
}
return nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment