在上一篇投票过滤器里我们看到的两条语句:String ip=request.getRemoteAddr();和long ipnum=StringHandler.getIpNum(ip);第一条不必多讲就是获取客户端的ip地址,第二条语句则是将我们获取的ip转换成长整型。这里调用了StringHandler类里面的静态方法getIpNum(String ip);下面就让我们来看看这个是怎么实现的:
public class StringHandler { public static long getIpNum(String ip){ long ipNum=0; if(ip!=null&&!ip.equals("")){ String[] subips=ip.split("\\."); for(int i=0;i<subips.length;i++){ ipNum+=Integer.parseInt(subips[i]); if(i<subips.length-1) ipNum=ipNum<<8; } } return ipNum; } }
注:ipNum=ipNum<<8;是将ipNum的二进制数向左移8位。