Javascript 对IP 地址的操作


//检查所输入的IP地址的合法性
function check_ipaddr(input_id)
{
	/*如果调用该函数传参数时,参数加上了引号,则直接用getElementById(input_id)即可
	如果传参数时,直接传的id值,则需要用以下方式获取该id对应的值*/
	var ipaddr = document.getElementById(input_id.id).value;
	if(ipaddr == "")
	{
		return true;
	}
	alert(ipaddr);
	var reg = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
	if(reg.exec(ipaddr))
	{
		if(RegExp.$1 < 256 && RegExp.$2 < 256 && RegExp.$3 < 256 && RegExp.$4  < 256)
		{
			return true;
		}
		else
		{
			alert("IP地址格式不对");
			return false;
		}
	}
	else
	{
		alert("IP地址格式不对");
	}
}

//比较两个IP地址的大小
function compare_ipaddr(ipaddr1, ipaddr2)
{
    var tmp1 = ipaddr1.split('.');
    var tmp2 = ipaddr2.split('.');
    
    for(var i = 0; i < 4; i++)
    {
        if(parseInt(tmp1[i]) > parseInt(tmp2[i]))
        {
            return 1;
        }
        else if(parseInt(tmp1[i]) < parseInt(tmp2[i]))
        {
            return -1;
        }
    }
    
    return 0;
}

//根据IP地址及掩码长度计算所在网段
function get_network_segment(ipaddr, masklen)
{
    var masklist = [
    '0.0.0.0', '128.0.0.0', '192.0.0.0', '224.0.0.0','240.0.0.0', '248.0.0.0', '252.0.0.0', '254.0.0.0', 
    
    '255.0.0.0', '255.128.0.0', '255.192.0.0', '255.224.0.0', '255.240.0.0', '255.248.0.0', '255.252.0.0', '255.254.0.0',
    
    '255.255.0.0', '255.255.128.0', '255.255.192.0', '255.255.224.0', '255.255.240.0', '255.255.248.0', '255.255.252.0', '255.255.254.0',
    
    '255.255.255.0', '255.255.255.128', '255.255.255.192', '255.255.255.224', '255.255.255.240', '255.255.255.248', '255.255.255.252', '255.255.255.254',
    
    '255.255.255.255'
    ];
    var ret = [];
    var tmp1 = ipaddr.split('.');
    var mask = masklist[masklen];
    var tmp2 = mask.split('.');
    var network_segment;
    
    for(var i = 0; i < tmp1.length; i++)
    {
        ret.push(tmp1[i] & tmp2[i]);
    }
    for(var i = 0; i < ret.length; i++)
    {
        network_segment += ret[i];
    }
    return network_segment;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值