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());
    }

}
目录
相关文章
|
1月前
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
22 1
|
4月前
|
Java API
【零基础学Java】—数组工具类Arrays(十七)
【零基础学Java】—数组工具类Arrays(十七)
|
4月前
|
Java
【零基础学Java】—数学工具类Math(十八)
【零基础学Java】—数学工具类Math(十八)
|
4月前
|
安全 算法 Java
Java之并发工具类的详细解析
3. 并发工具类 3.1 并发工具类-Hashtable Hashtable出现的原因 : 在集合类中HashMap是比较常用的集合对象,但是HashMap是线程不安全的(多线程环境下可能会存在问题)。为了保证数据的安全性我们可以使用Hashtable,但是Hashtable的效率低下。
29 0
|
7月前
|
Java
Java操作时间工具类
Java操作时间工具类
49 0
|
1月前
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
15 1
|
8天前
|
安全 Java
深入理解 Java 多线程和并发工具类
【4月更文挑战第19天】本文探讨了Java多线程和并发工具类在实现高性能应用程序中的关键作用。通过继承`Thread`或实现`Runnable`创建线程,利用`Executors`管理线程池,以及使用`Semaphore`、`CountDownLatch`和`CyclicBarrier`进行线程同步。保证线程安全、实现线程协作和性能调优(如设置线程池大小、避免不必要同步)是重要环节。理解并恰当运用这些工具能提升程序效率和可靠性。
|
28天前
|
JSON Java 网络安全
Java使用hutool工具类发送网络请求
Java使用hutool工具类发送网络请求
42 0
|
2月前
|
Java Linux 数据安全/隐私保护
Java【代码 16】将word、excel文件转换为pdf格式和将pdf文档转换为image格式工具类分享(Gitee源码)aspose转换中文乱码问题处理
【2月更文挑战第3天】Java 将word、excel文件转换为pdf格式和将pdf文档转换为image格式工具类分享(Gitee源码)aspose转换中文乱码问题处理
105 0
|
2月前
|
安全 算法 Java
Java Collections工具类:常用方法与技巧
Java Collections工具类:常用方法与技巧