云梦编程网

当前位置:首页 > 网页设计 >Javascript >

js根据ip和掩码位数获取ip段

作者:佚名 时间:2024-06-16 09:10:14 阅读:(16)

在网络管理和计算机网络领域,经常需要根据给定的IP地址和子网掩码位数来计算IP段。接下来云梦编程网将为大家介绍如何使用JavaScript编写一个函数,根据给定的IP地址和掩码位数来获取对应的IP段。有需要的小伙伴可以参考一下:

js根据ip和掩码位数获取ip段

1、 IP地址和子网掩码

IP地址用于标识网络中的设备,而子网掩码则用于确定IP地址的网络部分和主机部分。子网掩码通常用一个32位的二进制数字表示,其中1表示网络部分,0表示主机部分。

例如,对于IP地址 192.168.1.100 和子网掩码位数 24,对应的IP段为 192.168.1.0/24,即表示IP地址 192.168.1.100 属于 192.168.1.0 这个网络段。

2. JavaScript函数实现

/*
*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 subnetMaskChangeIpSegment(ip_str) {
    mark_len = 32;
    if (ip_str.search("/")!=-1) {
        var strs= new Array(); 
        strs=ip_str.split("/"); 
    }
    ip = _ip2int(strs[0]);
    mark_len = strs[1];
    mark = 0xFFFFFFFF << (32 - mark_len) & 0xFFFFFFFF;
    ip_start = ip & mark;
    ip_end = ip | (~mark) & 0xFFFFFFFF;
    return _int2iP(ip_start) +'-'+ _int2iP(ip_end);
}

3. 使用示例

var ip_str_du = subnetMaskChangeIpSegment("180.158.170.36/24");
document.write(ip_str_du,'
');


通过本文介绍的JavaScript函数,你可以方便地根据给定的IP地址和子网掩码位数来获取对应的IP段,了解更多相关文章请关注云梦编程网!

最新文章

热门文章