如何根据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查询归属地的功能。希望这篇教程对你有所帮助,祝学习顺利!