public class Stat {
/**
* 截取IP地址
* @param str
* @param sign
* @return
*/
public static String[] getStringData(String str, String sign) {
String[] strData = null;
StringTokenizer st1 = new StringTokenizer(str, sign);strData = new String[st1.countTokens()];
int i = 0;
while (st1.hasMoreTokens()) {
strData[i] = st1.nextToken().trim();
i++;
}
return strData;
}
/**
* 转换IP地址
* @param ip
* @return
*/
public static long getipAddress(String ip){
String[] ipdate = getStringData(ip, ".");
long myip =
(long) Integer.parseInt(ipdate[0]) * 256 * 256 * 256
+ (long) Integer.parseInt(ipdate[1]) * 256 * 256
+ (long) Integer.parseInt(ipdate[2]) * 256
+ (long) Integer.parseInt(ipdate[3]);
return myip;
}public static void main(String[] args){String ip = "211.43.213.51";
System.out.println(getipAddress(ip));

}http://www.easydone.cn/014/200604112050325573.htm

解决方案 »

  1.   

    127.0.0.1
    ----> 7F:00:00:01
    ----> 0100007F (Hex)
    ----> 16777343 (Dec)
      

  2.   

    echo long2ip(3659418624);//218.30.76.0
    echo long2ip(3659421183);//218.30.85.255表示在你的ip库中“陕西省西安市”的ip范围为218.30.76.0 - 218.30.85.255你可将待查的ip用ip2long转换成数值:$n = ip2long('218.30.80.16');
    然后在ip库中查询,条件为:起始ip<=$n and $n<=终止ip
      

  3.   

    楼上已经回答了mysql查寻可以用expr BETWEEN min AND max
      

  4.   

    呵呵,
    IP1:3659418624
    IP2:3659421183
    那个是ip的绝对格式,有一定的换算公司,8过忘记了