JavaScript遍历IP段内所有IP
思路:将两个IP转换为数字进行比较,小的那个慢慢加一,直到变成大的那个IP所转换的数字,将这其中的数字再转换为IP地址即为IP段内所有的IP。
1 //IP转数字 2 function ip2int(ip) 3 { 4 var num = 0; 5 ip = ip.split("."); 6 num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(ip[3]); 7 num = num >>> 0; 8 return num; 9 } 10 11 //数字转IP 12 function int2iP(num) 13 { 14 var str; 15 var tt = new Array(); 16 tt[0] = (num >>> 24) >>> 0; 17 tt[1] = ((num << 8) >>> 24) >>> 0; 18 tt[2] = (num << 16) >>> 24; 19 tt[3] = (num << 24) >>> 24; 20 str = String(tt[0]) + "." + String(tt[1]) + "." + String(tt[2]) + "." + String(tt[3]); 21 return str; 22 } 23 24 //列出IP段内的IP 25 function listIP(ip1,ip2){ 26 var ipInt1 = ip2int(ip1); 27 var ipInt2 = ip2int(ip2); 28 for(var i = ipInt1;i <= ipInt2;i++){ 29 document.write(int2iP(i) + '<br/>'); 31 } 32 } 33 34 listIP('158.66.23.0','158.66.23.255');
GitHub: https://github.com/mazeyqian
Blog: https://blog.mazey.net/
Blog: https://blog.mazey.net/