JavaScript遍历IP段内所有IP

思路:将两个IP转换为数字进行比较,小的那个慢慢加一,直到变成大的那个IP所转换的数字,将这其中的数字再转换为IP地址即为IP段内所有的IP。

//IP转数字
function ip2int(ip)
{
    var num = 0;
    ip = ip.split(".");
    num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(ip[3]);
    num = num >>> 0;
    return num;
}

//数字转IP
function int2iP(num)
{
    var str;
    var tt = new Array();
    tt[0] = (num >>> 24) >>> 0;
    tt[1] = ((num << 8) >>> 24) >>> 0;
    tt[2] = (num << 16) >>> 24;
    tt[3] = (num << 24) >>> 24;
    str = String(tt[0]) + "." + String(tt[1]) + "." + String(tt[2]) + "." + String(tt[3]);
    return str;
}

//列出IP段内的IP
function listIP(ip1,ip2){
	var ipInt1 = ip2int(ip1);
	var ipInt2 = ip2int(ip2);
	for(var i = ipInt1;i <= ipInt2;i++){
		document.write(int2iP(i) + '>br/<');
	}
}

listIP('158.66.23.0','158.66.23.255');

发表评论

电子邮件地址不会被公开。 必填项已用*标注