IP获取归属地区(免费)

这篇具有很好参考价值的文章主要介绍了IP获取归属地区(免费)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

IP获取归属地区

使用 http://whois.pconline.com.cn/ipJson.jsp 这个 URL 来获取 IP 地址的归属城市信息文章来源地址https://www.toymoban.com/news/detail-564512.html

import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Objects;
import javax.servlet.http.HttpServletRequest;

import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class IpAddressUtils {
    private static final Logger log = LoggerFactory.getLogger(IpAddressUtils.class);

    /**
     * 获取当前网络ip
     *
     * @param request
     * @return
     */
    public static String getIpAddr(HttpServletRequest request) {
        String ipAddress = request.getHeader("x-forwarded-for");
        if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
            ipAddress = request.getHeader("Proxy-Client-IP");
        }
        if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
            ipAddress = request.getHeader("WL-Proxy-Client-IP");
        }
        if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
            ipAddress = request.getRemoteAddr();
            if (ipAddress.equals("127.0.0.1") || ipAddress.equals("0:0:0:0:0:0:0:1")) {
                //根据网卡取本机配置的IP
                InetAddress inet = null;
                try {
                    inet = InetAddress.getLocalHost();
                } catch (UnknownHostException e) {
                    log.error("Error occurred when getIpAddr method was invoked.ex:", e);
                }
                ipAddress = inet.getHostAddress();
            }
        }
        //对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
        if (ipAddress != null && ipAddress.length() > 15) { //"***.***.***.***".length() = 15
            if (ipAddress.indexOf(",") > 0) {
                ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));
            }
        }
        return ipAddress;
    }


    /**
     * IP获取归属地区
     * @param ipAddress
     * @return
     */
    public static String getAddress(String ipAddress) {
        CloseableHttpClient httpClient = null;
        CloseableHttpResponse response = null;
        String address = null;
        try {
            // 创建 HttpClient 实例
            httpClient = HttpClients.createDefault();

            // 构建 API 请求 URL
            String apiUrl = "http://whois.pconline.com.cn/ipJson.jsp?ip=" + ipAddress;

            // 创建 HttpGet 请求
            HttpGet httpGet = new HttpGet(apiUrl);

            // 发送请求并获取响应
            response = httpClient.execute(httpGet);

            // 解析响应
            if (response.getStatusLine().getStatusCode() == 200) {
                String jsonResponse = EntityUtils.toString(response.getEntity(), "GBK");
                address = jsonResponse.substring(jsonResponse.indexOf("addr") + 7, jsonResponse.indexOf("regionNames") - 3);
            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            close(httpClient, response);
            return address;
        }
    }


    public static void close(CloseableHttpClient httpClient, CloseableHttpResponse response) {
        try {
            if (Objects.nonNull(response)) {
                response.close();
            }
            if(Objects.nonNull(httpClient)){
                httpClient.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

到了这里,关于IP获取归属地区(免费)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 免费IP归属地查询API接口

    百度IP地址归属地查询接口: 请求接口:http://opendata.baidu.com/api.php?apiquery=123.123.123.123co=resource_id=6006oe=utf8 返回结果包括国家、省份、城市等信息。 太平洋IP地址归属地查询接口: 请求接口:http://whois.pconline.com.cn/ipJson.jsp?ip=123.123.123.123json=true 返回结果包括国家、省份、城市

    2024年04月24日
    浏览(25)
  • 使用 ip2region 获取用户的 IP 归属地

    ip2region 是一个离线IP地址定位库和IP定位数据管理框架,能实现10微秒级别的查询效率,提供了众多主流编程语言的xdb数据生成和查询客户端实现。 每个 ip 数据段的 region 信息都固定了格式: 国家|区域|省份|城市|ISP ,只有中国的数据绝大部分精确到了城市,其他国家部分数

    2024年02月13日
    浏览(30)
  • SpringBoot通过ip获取归属地,你应该知道的几种方式。

    Hi,大家好,我是抢老婆酸奶的小肥仔。 在日常我们逛网站的时候会发现我们登录后会出现归属地信息,例如:我在广州登录会显示广东广州,有些更加精确的会显示到区县。 那么我们来看看有哪些方式来获取归属地信息?今天我们来聊一聊。 公共方法: 获取用户ip地址:

    2024年04月09日
    浏览(42)
  • 如何使用IP归属地查询API加强网络安全

    目录 一、背景与意义 二、IP归属地查询API加强网络安全的方式 三、IP归属地API的使用教程 四、实际代码示例 五、结合其他安全技术加强网络安全 六、注意事项 总结 在数字化的今天,网络安全问题变得尤为重要。企业、组织乃至个人都面临着网络攻击和数据泄露的风险。为

    2024年02月06日
    浏览(47)
  • 【Java、Python】获取电脑当前网络IP进行位置获取(附源码)

    我相信看到这篇博客的时候心里肯定是想解决自己的一个问题的,而这篇博客我就以简单快速的方式解决这些烦恼! 在Java中自带了一些自己的流对象来获取当前的IP地址,不多说我们直接上代码。 正如所见,一行代码获取你当前的IP。 InetAddress.getLocalHost()  - 此方法返回一个

    2024年02月04日
    浏览(39)
  • IP归属地与IP定位

    IP归属地查询是指根据给定的IP地址,确定该IP地址所属的地理位置或网络服务提供商。这种查询可以帮助用户了解到访者的地理位置,有助于网络安全、反垃圾邮件等应用。  在实际应用中,IP归属地查询常用于以下几个方面: 网络安全:通过IP归属地查询,可以确定访问者

    2024年02月12日
    浏览(23)
  • IP背后的信息,怎么查IP归属地?

    今天我就要给大家介绍IP背后隐藏的事儿。这节课的内容绝对不要错过,这是你以后搭建店铺网络环境必不可少的知识。 无论是手机号码,还是座机号码,都有一个归属地。一个陌生人给你打电话,或者你给陌生人打电话。你不知道他是谁,但是你至少知道这个电话号码是属

    2024年02月04日
    浏览(31)
  • IP归属地API分享

    各大网站和app都更新了用户IP归属地功能,但是如何获取IP归属地信息科难为了一些技术人员了,下面给大家分享最好用的IP归属地API,能够大大的提升了效率。   IP归属地API( IP66_ip归属地在线查询_免费ip查询_ip精准定位平台 ),根据IP地址查询归属地信息,包含国家、省、

    2024年02月08日
    浏览(34)
  • Python爬虫教程:如何使用Python获取免费代理IP

    部分数据来源: ChatGPT 引言         在爬取数据时,为了避免被反爬机制封锁,我们需要使用代理IP来进行隐蔽访问。有些网站提供免费的代理IP,我们可以使用Python来自动化获取这些代理IP,并进行验证筛选出可用的代理IP。 准备工作         在开始之前,需要安装

    2024年02月07日
    浏览(39)
  • 如何高效地查询IP归属地

    高效识别IP归属地是网络安全领域中的一项重要工作。准确地识别IP的归属地不仅可以帮助网络管理员追踪和定位潜在的网络攻击者,还可以用于网络流量分析、地理定位服务等方面。  以下将介绍几种高效识别IP归属地的方法。 使用IP归属地数据库 IP归属地数据库是一种存储

    2024年02月15日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包