首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

!IP转换成INT型的有关问题

2012-02-10 
求助!IP转换成INT型的问题function ip_translate_from_str(ip_str){var ip_int 0if(is_ip(ip_str)){var

求助!IP转换成INT型的问题
function ip_translate_from_str(ip_str)
{
var ip_int = 0;
if(is_ip(ip_str))
{
var ip_split = ip_str.split('.');
ip_int |= parseInt(ip_split[0]);
ip_int |= parseInt(ip_split[1]) << 8;
ip_int |= parseInt(ip_split[2]) << 16;
ip_int |= parseInt(ip_split[3]) << 24;
}
return ip_int;
}
该方法转换如192.168.1.128及以上同网段IP时会返回一个负数,请问是为啥~~

[解决办法]

HTML code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head>    <title>new document</title>    <script type="text/javascript">    function ip2num(ip){        var arr = ip.split("."), x = 1, ret = 0;        for(var i = 0; i < arr.length; i++){            ret += arr[i] * x;            x *= 256;        }        return ret;            }    function num2ip(n){        var ret = [], x = 256 * 256 * 256;        for(var i = 0; i < 4; i++){            ret.push(parseInt(n / x));            n %= x;            x /= 256;        }        return ret.reverse().join(".");    }    var n = ip2num("192.168.1.228");    alert(n);    alert(num2ip(n));    </script></head><body></body></html> 

热点排行