Java-IPDeal工具类

简介: /** * IP处理类 */import java.sql.*;public class IPDeal { /** * 通过ip地址查询地区名称 * @param strip * @return ip所在地区名称 */ ...
/**
 * IP处理类
 */
import java.sql.*;

public class IPDeal {
    /**
     * 通过ip地址查询地区名称
     * @param strip
     * @return ip所在地区名称
     */
    public static String getArea(String strip){
        Connection conn = null;
        PreparedStatement pstmt = null;
        String sql;
        String strRtn = null;
        try{
            MyJdbc myjdbc = new MyJdbc();
            conn = myjdbc.getConn();
            sql = "select * from fullip where startip<='" + strip + "' and endip>='" + strip + "'";
            pstmt = conn.prepareStatement(sql);
            ResultSet rs = pstmt.executeQuery();
            if(rs.next()){
                strRtn = rs.getString("country");
            }else{
                strRtn = "未确定";
            }
            rs.close();
            rs = null;
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            if (pstmt != null)
                try{
                    pstmt.close();
                    pstmt = null;
                }catch(Exception e){}
            if (conn != null)
                try{
                    conn.close();
                    conn = null;
                }catch(Exception e){}
        }
        return strRtn;
    }
    /**
     * 把ip地址格式化为:000.000.000.000
     * @param ip
     * @return 返回规格ip
     */
    public static String strfullip(String ip){
        StringBuffer buff = new StringBuffer();
        buff.append("");
        String strzero = "000";
        int ilen = 0;
        if(ip != null){
            String[] arrip = ip.split("\\.");
            if(arrip.length == 4){
                for(int i = 0; i < 4; i++){
                    if (i==0){
                        ilen = arrip[i].length();
                        if(ilen < 3){
                            buff.append(strzero.substring(0,3-ilen)).append(arrip[i]);
                        }else{
                            buff.append(arrip[i]);
                        }
                    }else{
                        ilen = arrip[i].length();
                        if(ilen < 3){
                            buff.append(".").append(strzero.substring(0,3-ilen)).append(arrip[i]);
                        }else{
                            buff.append(".").append(arrip[i]);
                        }
                    }
                }
            }
        }
        return buff.toString();
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        String strip = "202.108.33.32";
        System.out.println(IPDeal.strfullip(strip));
        System.out.println(System.currentTimeMillis());
        System.out.println("ip" + strip + "所在地区:" + IPDeal.getArea(IPDeal.strfullip(strip)));
        System.out.println(System.currentTimeMillis());
    }

}
目录
相关文章
|
9月前
|
人工智能 JSON Java
列表结构与树结构转换分析与工具类封装(java版)
本文介绍了将线性列表转换为树形结构的实现方法及工具类封装。核心思路是先获取所有根节点,将其余节点作为子节点,通过递归构建每个根节点的子节点。关键在于节点需包含 `id`、`parentId` 和 `children` 三个属性。文中提供了两种封装方式:一是基于基类 `BaseTree` 的通用工具类,二是使用函数式接口实现更灵活的方式。推荐使用后者,因其避免了继承限制,更具扩展性。代码示例中使用了 Jackson 库进行 JSON 格式化输出,便于结果展示。最后总结指出,理解原理是进一步优化和封装的基础。
304 0
|
算法 搜索推荐 Java
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
这篇文章介绍了如何使用Java后端技术,结合Graphics2D和Echarts等工具,生成包含个性化信息和图表的海报,并提供了详细的代码实现和GitHub项目链接。
879 0
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
|
Java
Java 些许公共工具类
Java 些许公共工具类
95 1
|
缓存 前端开发 Java
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)
【8月更文挑战第10天】java基础巩固,工具类的封装
106 1
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)
Java应用结构规范问题之在UnitConvertUtils工具类将千米转换为米的问题如何解决
Java应用结构规范问题之在UnitConvertUtils工具类将千米转换为米的问题如何解决
229 8
|
设计模式 缓存 算法
编写高效的Java工具类:实用技巧与设计模式
编写高效的Java工具类:实用技巧与设计模式
|
设计模式 存储 安全
Java面试题:设计一个线程安全的单例类并解释其内存占用情况?使用Java多线程工具类实现一个高效的线程池,并解释其背后的原理。结合观察者模式与Java并发框架,设计一个可扩展的事件处理系统
Java面试题:设计一个线程安全的单例类并解释其内存占用情况?使用Java多线程工具类实现一个高效的线程池,并解释其背后的原理。结合观察者模式与Java并发框架,设计一个可扩展的事件处理系统
256 1
|
安全 Java 开发者
Java中的并发工具类与线程安全实现
Java中的并发工具类与线程安全实现
|
设计模式 缓存 算法
编写高效的Java工具类:实用技巧与设计模式
编写高效的Java工具类:实用技巧与设计模式
|
并行计算 Java API
Java中的并发工具类详解
Java中的并发工具类详解