如何根据IP查询归属地 Java实现教程
1. 流程概述
在这个教程中,我将教你如何使用Java实现根据IP查询归属地的功能。下面是整个流程的步骤表格:
步骤 | 描述 |
---|---|
1 | 获取用户输入的IP地址 |
2 | 调用IP查询接口 |
3 | 解析返回的JSON数据 |
4 | 提取归属地信息并显示 |
2. 代码实现
步骤1:获取用户输入的IP地址
// 从控制台获取用户输入的IP地址
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要查询的IP地址:");
String ip = scanner.nextLine();
步骤2:调用IP查询接口
// 使用HttpClient发送HTTP请求
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(" + ip))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
步骤3:解析返回的JSON数据
// 使用Gson库解析JSON数据
Gson gson = new Gson();
JsonObject jsonObject = gson.fromJson(response.body(), JsonObject.class);
String country = jsonObject.get("country").getAsString();
String region = jsonObject.get("regionName").getAsString();
String city = jsonObject.get("city").getAsString();
步骤4:提取归属地信息并显示
// 显示归属地信息
System.out.println("IP地址:" + ip);
System.out.println("国家:" + country);
System.out.println("地区:" + region);
System.out.println("城市:" + city);
3. 完整代码示例
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
public class IPQuery {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要查询的IP地址:");
String ip = scanner.nextLine();
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(" + ip))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
Gson gson = new Gson();
JsonObject jsonObject = gson.fromJson(response.body(), JsonObject.class);
String country = jsonObject.get("country").getAsString();
String region = jsonObject.get("regionName").getAsString();
String city = jsonObject.get("city").getAsString();
System.out.println("IP地址:" + ip);
System.out.println("国家:" + country);
System.out.println("地区:" + region);
System.out.println("城市:" + city);
}
}
4. 任务完成
通过以上步骤,你可以成功实现根据IP查询归属地的功能。希望这篇教程对你有所帮助,祝学习顺利!