IPv4子网判断

有时候,服务后端需要对客户端的所属组进行判断,以决定何种访问策略权限。而客户端IP所在子网是一种很简单易实现的分组方法。
虽然现在早已经进入IPv6时代,不过IPv4在局域网仍广泛使用,它的定义规则相对简单,本文介绍的是IPv4子网判断的算法。
一个IPv4的地址,就是4段0-255之间的数字以.隔开(实际上按二进制的话有效位数是32位),而一个子网的地址则是一个IPV4地址加掩码构成,掩码也是4段0-255之间的数字以.隔开(实际上按二进制的话有效位数是32位,一般说的掩码位数是指32位中从左到右连续1的个数),定义很简单。那么判断一个客户端的IP地址是否属于某个子网,可以按以下方法判断:

function testip(ip) { //ip地址合法性检查 正则表达式
if (/^(?:(?:1[0-9][0-9]\.)|(?:2[0-4][0-9]\.)|(?:25[0-5]\.)|(?:[1-9][0-9]\.)|(?:[0-9]\.)){3}(?:(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5])|(?:[1-9][0-9])|(?:[0-9]))$/.test(ip)) {
	return true
	}
else { return false }
}

function insubnet(clientip,ipsegment,mask) {
	if (testip(clientip) && testip(ipsegment) && testip(mask)) {
		let ipv4=clientip.split(".");
		let ipsv4=ipsegment.split(".");
		let maskv4=mask.split(".");
		if ( ((ipv4[0]&maskv4[0])==ipsv4[0]) && ((ipv4[1]&maskv4[1])==ipsv4[1]) && ((ipv4[2]&maskv4[2])==ipsv4[2]) && ((ipv4[3]&maskv4[3])==ipsv4[3]) ) { return true; }
		else { return false; }
		}
	else { return false; }
}

例程中对客户端IP地址、子网地址和掩码按正则表达式进行合法性检查,实际环境可能不一定需要这样操作。

相关推荐

  1. IPv4判断

    2024-04-07 21:46:03       21 阅读
  2. ip地址与

    2024-04-07 21:46:03       55 阅读
  3. IP地址及掩码

    2024-04-07 21:46:03       32 阅读
  4. 判断某个ip是否在某个段下

    2024-04-07 21:46:03       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-07 21:46:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-07 21:46:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-07 21:46:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-07 21:46:03       20 阅读

热门阅读

  1. 题解:CF1941C(C. Rudolf and the Ugly String)

    2024-04-07 21:46:03       19 阅读
  2. 真正的力量:实力与人际关系的平衡艺术

    2024-04-07 21:46:03       18 阅读
  3. Go rand 随机数

    2024-04-07 21:46:03       14 阅读
  4. 19.删除链表的倒数第N个节点

    2024-04-07 21:46:03       11 阅读
  5. C++ [NOIP2006 普及组] 明明的随机数

    2024-04-07 21:46:03       16 阅读
  6. RabbitMQ交换机类型!!!

    2024-04-07 21:46:03       20 阅读
  7. 投资回报率ROI是什么意思?

    2024-04-07 21:46:03       19 阅读
  8. 《牛客》-C小红的字符串构造

    2024-04-07 21:46:03       17 阅读
  9. jq的跳转方法有哪些(补)

    2024-04-07 21:46:03       15 阅读