`
zhangweioak
  • 浏览: 63235 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

IPUtil

    博客分类:
  • Java
 
阅读更多
package com.koubei.util;

import javax.servlet.http.HttpServletRequest;

/**
 * IP处理工具类
 * 
 * @author zhanqiong
 * 
 */
public class IPUtil {

    /**
     * 获取真实IP:
     *    先取
     * @param request
     * @return
     */
    public static String getClientIP(HttpServletRequest request) {
        String ip = request.getHeader("X-Real-IP");
        if (StringUtil.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("X-Forwarded-For");
        }
        if (StringUtil.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
        }
        
        return ip;
    }

    /**
     * IP转成数字类型
     * 
     * @param strIP
     * @return
     */
    public static long ipToLong(String strIP) {
        long[] ip = new long[4];
        int position1 = strIP.indexOf(".");
        int position2 = strIP.indexOf(".", position1 + 1);
        int position3 = strIP.indexOf(".", position2 + 1);
        ip[0] = Long.parseLong(strIP.substring(0, position1));
        ip[1] = Long.parseLong(strIP.substring(position1 + 1, position2));
        ip[2] = Long.parseLong(strIP.substring(position2 + 1, position3));
        ip[3] = Long.parseLong(strIP.substring(position3 + 1));
        // ip1*256*256*256+ip2*256*256+ip3*256+ip4
        return (ip[0] << 24) + (ip[1] << 16) + (ip[2] << 8) + ip[3];
    }

    /**
     * 是否是本地IP
     * 
     * @param strIp
     * @return
     */
    public static boolean isLocal(String strIp) {
        if ("127.0.0.1".equals(strIp))
            return true;
        long l = ipToLong(strIp);
        if (l >= 3232235520L)
            return l <= 3232301055L;
        return (l >= 167772160L) && (l <= 184549375L);
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        System.out.println("202.102.249.59:"
                + Long.toString(IPUtil.ipToLong("202.102.249.59")));
        System.out.println("202.102.249.59 is local ip:"
                + Boolean.toString(IPUtil.isLocal("202.102.249.59")));
        System.out.println("127.0.0.1:"
                + Long.toString(IPUtil.ipToLong("127.0.0.1")));
        System.out.println("127.0.0.1 is local ip:"
                + Boolean.toString(IPUtil.isLocal("127.0.0.1")));
        System.out.println("10.9.1.134:"
                + Long.toString(IPUtil.ipToLong("10.9.1.134")));
        System.out.println("10.9.1.134 is local ip:"
                + Boolean.toString(IPUtil.isLocal("10.9.1.134")));

    }
}
分享到:
评论

相关推荐

    iputil工具代码

    从给定的文件信息来看,我们正在探讨的是一个名为`IpUtil`的Java类,它主要功能是实现IP地址(IPv4)与十进制整数之间的相互转换。这一工具在许多网络编程场景中非常实用,例如在网络设备管理、网络安全、IP地址池...

    IpUtil工具类--通过request获取IP,通过IP获取地址

    IpUtil工具类--通过request获取IP,通过IP获取地址(需要联网,调用淘宝的IP库)。使用场景:在网站开发记录用户增删改查日志的时候,往往需要记录操作人的IP地址,来准确的生成操作日志记录等

    IPUtil获取ip与MAC工具类

    通过Request 解析ip地址以及MAC地址工具类

    IPUtil.java

    IPUtil.java

    android获取公网ip地址 IPUtil.java

    通过异步任务来获取当前用户的ip地址,使用的时候调用getRemoteIP方法就可以,需要传一个可以获取公网ip的url地址,这个百多很多,比如,搜狐,淘宝之类的都有,同时还有一个超时的任务,具体看代码了

    Java-IpUtil通过请求获取IP信息的工具类

    内容概要:要工具类将接口请求解析以获取请求的IP地址信息。内含Ip2regionSearcher工具类的使用方式,可以通过使用Ip2regionSearcher将获取到的IP地址信息,进一步解析得到IP属地信息。 适应人群:有需要获取请求IP...

    IpUtil.java

    进行ip的获取

    根据ip获取对应城市.rar

    2. "IPUtil.java":这是Java源代码文件,很可能包含了实现IP地址解析和查询城市信息的主要逻辑。在这个类中,开发者可能使用了某种API或者数据库查询方法来实现IP到城市映射的功能。 3. "data.zip":这是一个数据...

    JAVA_IP自动递增和加密

    在Java中,可以编写一个自定义工具类,如`IpUtil.java`,来实现IP地址的递增功能。这个类可能包含一个方法,接受一个IP字符串,然后返回一个新的IP,IP地址的最后一个数字增加1。 ```java public class IpUtil { ...

    java各种工具类:精确的数学运算、将String进行base64编码解码、树的递归、判断是否为空等

    ArithmeticUtils、Base64Util、BitConverterUtil、BuildTreeFor1077、CaculateDistanceUtil、CloseUtil、ConvertUtil、CoordinateTransformUtil...GetGpsInPtsUtil、GsonUtils、HashUtil、IpUtil、IpUtils、JsonUtil、JWTUtil、...

    ip、mac标准格式转换工具(java)

    在给定的`IpUtil.java`和`MacUtil.java`文件中,我们可以推测它们包含了处理这两种地址的实用工具类。这些类可能包含了将IP地址和MAC地址进行转换、校验和操作的函数。 在`IpUtil.java`中,我们可能会看到以下功能...

    根据IP地址获取ip所在区域.rar

    在IT行业中,网络通信是至关重要的部分,而与之紧密...在Java环境中,这通常涉及网络请求、JSON解析等技术,而"IpUtil"可能正是实现这一功能的关键工具。理解并掌握这种技术对于网络编程和数据分析等领域具有重要意义。

    jmp.zip_jmp

    4. IpUtil.java:同样,这可能是处理IP地址的工具类,包含各种IP地址操作的静态方法,如IP地址的转换、比较、有效性检查等。 5. IPLocation.java:这个类可能涉及到IP地址地理位置的获取,比如通过IP地址查询对应的...

    工具类-获取访问ip地址工具类,自用留存

    在`IpUtil.java`这个文件中,可能包含了上述知识点的实现。具体代码会包含一些关键函数,如`getClientIp(HttpServletRequest request)`,用于从HTTP请求中提取IP地址;或者`getLocalIpAddress()`,用于获取本地机器...

    java脚本开发根据客户IP获取IP的具体地理位置信息

    public class IpUtil { public static String getRealIp(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase...

    Java获取登录用户的IP地址示例代码.rar

    public class IPUtil { public static String getIpAddress(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.length() == 0 || "unknown"....

    iputils, iputils软件包是用于Linux网络的小型实用实用程序.zip

    iputils, iputils软件包是用于Linux网络的小型实用实用程序 iputils软件包是用于Linux网络的小型实用实用程序。这些工具包括在iputils中arpingclockdiffipgpingrarpdrdisctftpdtracepathtraceroute6

Global site tag (gtag.js) - Google Analytics