java通过免费接口获取ip地址的服务商信息

简介:

今天分享一个免费在线的小工具的开发代码就是通过淘宝提供的接口获取服务商信息,
工具地址:www.yzcopen.com/seo/ipadress

代码如下:

public class YzcPattern {

/**
 * ip地址接口
 */
private final static String ipurl ="http://ip.taobao.com/service/getIpInfo.php?ip=";

/**
 * 判断ip
 * @param text
 * @return
 */
public static boolean ipCheck(String text) {
    if (text != null && !text.isEmpty()) {
            // 定义正则表达式
            String regex = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."
            + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
            + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
            + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";
        // 判断ip地址是否与正则表达式匹配
            if (text.matches(regex)) {
                return true;
                // 返回判断信息
                //return text + "\n是一个合法的IP地址!";
            } else {
                return false;
                // 返回判断信息
                //return text + "\n不是一个合法的IP地址!";
            }
        }
        return false;
 }

/**

 * 读取IP的
 * @param getAccessTokenUrl
 * @return
 */
public static String getAuth(String getAccessTokenUrl) {
    HttpURLConnection connection = null;
    try {
        URL realUrl = new URL(getAccessTokenUrl);
        // 打开和URL之间的连接
        connection = (HttpURLConnection) realUrl.openConnection();
        connection.setRequestProperty("User-Agent", Const.UserAgent);
        connection.setRequestMethod("GET");
        connection.setRequestProperty("Charsert", "UTF-8"); //设置请求编码
        connection.setRequestProperty("Content-Type", 
                "application/json"); 
        connection.connect();
        // 定义 BufferedReader输入流来读取URL的响应
        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
        String result = "";
        String line;
        while ((line = in.readLine()) != null) {
            result +=  line;
        }
        /**
         * 返回结果示例
         */
        return result;
    } catch (Exception e) {
        e.printStackTrace();
    }finally{
        if(connection!=null){
             connection.disconnect();
        }
    }
    return null;
}

public static void main(String[] args) throws Exception {
          String ip="您的ip";
    boolean bo = YzcPattern.ipCheck(ip);
    if(bo){
       String url = ipurl+ip;
       String result = getAuth(url);
    }
        
    //获得的结果 {"code":0,"data":{"ip":"58.87.124.194","country":"中国","area":"","region":"天津","city":"天津","county":"XX","isp":"电信","country_id":"CN","area_id":"","region_id":"120000","city_id":"120100","county_id":"xx","isp_id":"100017"}}
}

}

相关文章
|
21天前
|
Java
有关Java发送邮件信息(支持附件、html文件模板发送)
有关Java发送邮件信息(支持附件、html文件模板发送)
23 1
|
25天前
|
Java
【Java】一个简单的接口例子(帮助理解接口+多态)
【Java】一个简单的接口例子(帮助理解接口+多态)
16 0
C4.
|
1月前
|
Java
Java的接口
Java的接口
C4.
19 0
|
1月前
|
监控 Java
Java如何获取堆栈信息
【2月更文挑战第19天】
|
29天前
|
Java
JAVA接口
JAVA接口
12 0
|
4天前
|
安全 Java 编译器
接口之美,内部之妙:深入解析Java的接口与内部类
接口之美,内部之妙:深入解析Java的接口与内部类
20 0
接口之美,内部之妙:深入解析Java的接口与内部类
|
8天前
|
缓存 安全 Java
Java中函数式接口详解
Java 8引入函数式接口,支持函数式编程。这些接口有单一抽象方法,可与Lambda表达式结合,简化代码。常见函数式接口包括:`Function<T, R>`用于转换操作,`Predicate<T>`用于布尔判断,`Consumer<T>`用于消费输入,`Supplier<T>`用于无参生成结果。开发者也可自定义函数式接口。Lambda表达式使实现接口更简洁。注意异常处理和线程安全。函数式接口广泛应用于集合操作、并行编程和事件处理。提升代码可读性和效率,是现代Java开发的重要工具。
18 0
|
8天前
|
Java 关系型数据库 MySQL
大厂面试题详解:Java抽象类与接口的概念及区别
字节跳动大厂面试题详解:Java抽象类与接口的概念及区别
33 0
|
8天前
|
Java
Java中的多线程实现:使用Thread类与Runnable接口
【4月更文挑战第8天】本文将详细介绍Java中实现多线程的两种方法:使用Thread类和实现Runnable接口。我们将通过实例代码展示如何创建和管理线程,以及如何处理线程同步问题。最后,我们将比较这两种方法的优缺点,以帮助读者在实际开发中选择合适的多线程实现方式。
19 4
|
25天前
|
Java
【Java】Clonable 接口
【Java】Clonable 接口
11 1