java调用太平洋电脑网IP归属地接口

Java调用太平洋电脑网IP归属地接口

接口地址

https://whois.pconline.com.cn/ipJson.jsp?json=true&ip=具体ip

请求参数

参数 说明
json 固定传true,返回标准JSON格式
ip 需要查询的公网IPv4地址

返回数据示例

{"ip":"221.198.239.124","pro":"河南省","proCode":"410000","city":"郑州市","cityCode":"410100","region":"中原区","regionCode":"410102","addr":"河南省郑州市中原区 联通","regionNames":"","err":""}

Maven 依赖

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.14</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.15.2</version>
</dependency>

Java HttpClient 完整调用代码

import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContexts;
import org.apache.http.util.EntityUtils;

import javax.net.ssl.SSLContext;
import java.security.cert.X509Certificate;

/**
 * IP归属地查询工具
 */
public class IpQueryUtil {

    /**
     * 根据IP获取归属地JSON信息
     * @param ip 待查询公网IP
     * @return JSON字符串
     */
    public static String getIpInfoJson(String ip) throws Exception {
        String url = "https://whois.pconline.com.cn/ipJson.jsp?json=true&ip=" + ip;

        // 兼容HTTPS SSL证书,跳过证书校验
        SSLContext sslContext = SSLContexts.custom()
                .loadTrustMaterial(null, (X509Certificate[] chain, String authType) -> true)
                .build();

        SSLConnectionSocketFactory sslFactory = new SSLConnectionSocketFactory(
                sslContext, NoopHostnameVerifier.INSTANCE);

        try (CloseableHttpClient httpClient = HttpClients.custom()
                .setSSLSocketFactory(sslFactory).build()) {

            HttpGet httpGet = new HttpGet(url);
            httpGet.setHeader("User-Agent", "Mozilla/5.0");

            try (CloseableHttpResponse response = httpClient.execute(httpGet)) {
                return EntityUtils.toString(response.getEntity(), "UTF-8");
            }
        }
    }
}
posted @ 2026-04-22 14:37  lanwf  阅读(42)  评论(0)    收藏  举报