To determine the ISP of an IP address using IP2Location.io in Scala, you can use the IP2Location.io API to retrieve geolocation and related data.
import com.google.gson.*
import java.net.URI
import java.net.http.{HttpClient, HttpRequest, HttpResponse}
@main def Test(): Unit = {
try {
val key = "YOUR_API_KEY"
val ip = "8.8.8.8"
val url = "https://api.ip2location.io/?format=json&key=" + key + "&ip=" + ip
val request = HttpRequest.newBuilder.uri(new URI(url)).GET.build
val client = HttpClient.newHttpClient
val response = client.sendAsync(request, HttpResponse.BodyHandlers.ofString).join()
val statusCode = response.statusCode()
if (statusCode == 200) {
val rawJSON = response.body()
val myObj = JsonParser.parseString(rawJSON).getAsJsonObject
if (myObj.has("isp")) {
System.out.println("The ISP for IP " + ip + " is " + myObj.get("isp").getAsString + ".")
} else {
throw Exception("ERROR: The isp field requires a paid subscription to the Starter plan or higher.")
}
} else if (statusCode == 400 || statusCode == 401) {
val rawJSON = response.body()
if (rawJSON.contains("error_message")) {
throw Exception("ERROR: " + JsonParser.parseString(rawJSON).getAsJsonObject.getAsJsonObject("error")
.get("error_message").getAsString
)
}
throw Exception(rawJSON)
} else {
throw Exception(response.body())
}
} catch {
case e: Exception => System.out.println(e)
}
}
This script will output the ISP of specified IP address. Make sure to replace 8.8.8.8 with the IP address you want and replace YOUR_API_KEY to your own API key.
Empower your applications with accurate IP geolocation information now.
Try It for Free