1.       IP合法关于IP地址的合法性验证很简单,方法也很多,比如字符串分解、正则表达式等。

2.       子网掩码是否合法简单来讲,子网掩码就类似这样一串数字,前面一段是连续的1, 类似“111111111”,后面一段是连续的0,类似“00000”,这样合法的样子是“11111111000000000”,总共是32位。

  一个合法的子网掩码要满足如下条件:1、是合法的IP地址2、二进制码要相邻,即形如111……11000……0的形式3、与IP地址对应,A、B、C、D各类IP地址都有对应的掩码范围

原理很简单,任何int数字都可以换成8位二进制0,1表示如 1是 0000 0001, ip地址有4个小于256的数字组成,这样组成32位0,1的二进制数据。其中,这32位0,1数字以1开头,并且一旦出现0,后面就不能再出现1了,即1和0的出现都是连续的才是合法的,如此可以一个个字节的判断1后面出现0后是不是就全是0了。

下面给出子网掩码的合法性判断:

public bool checkMask(string mask) {string[] vList = mask.Split('.'); if (vList.Length != 4) return false; bool vZero = false; // 出现0 for (int j = 0; j < vList.Length; j++) {int i;if (!int.TryParse(vList[j], out i)) return false;if ((i < 0) || (i > 255)) return false;if (vZero){if (i != 0) return false;}else{ for (int k = 7; k >= 0; k--){if (((i >> k) & 1) == 0) // 出现0
                        {vZero = true;}else{if (vZero) return false; // 不为0
                        }}} }return true; } 

转载于:https://www.cnblogs.com/jhlong/p/5501482.html

C#验证子网掩码的正确性相关推荐

  1. ADI官方源码快速搭建demo工程验证设计的正确性

    目录 1 ADI官方demo工程设计简介 2  ADI官方HDL源码介绍 2.1  HDL源码用户指导书:ADI Reference Designs HDL User Guide 2.2  C源代码下 ...

  2. php 子网掩码正则,验证子网掩码正则表达式代码范例

    验证子网掩码正则表达式代码实例:在实际应用中可能验证子网掩码合法性的需求并不多,但并不能够保证绝对没有,下面就分享一段能够实现此功能的代码实例,希望能够给需要的朋友带来一定的帮助,代码如下: func ...

  3. 普歌-腾讯云短信+使用node发送短信(3种方法API、SDK)、封装工具、搭建web服务、写接口、调用接口发送短信、时效性判断、验证验证码的正确性(下)

    普歌-结合腾讯云短信服务+node搭建一个简单的发送短信web小项目 涉及技术: 腾讯云服务 后端服务:node+express 前端搭建:html+js 前言:本来这篇博客应该很早就发了,中间有一些 ...

  4. mysql验证配置_详解MySQL|教你一招如何自动验证 MySQL 配置正确性

    升级 MySQL 版本之后,许多用户在启动时并未更改配置文件,但发现新的的版本不再支持某些已弃用的选项,这会导致升级的 MySQL 服务关闭.在其他情况下,修改配置文件时错误输入无效的配置项会使得服务 ...

  5. java案例--根据规则验证身份证号码正确性

         import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner sc ...

  6. 正则表达式验证身份证号以及验证校验位的正确性

    需求:给定一个字符串,从中提取出身份证号 关于验证15位和18位身份证号的正则表达式可以参考下面的内容: http://www.cppcns.com/wangluo/re/183062.html 一. ...

  7. js 验证身份证号码正确性

    今天找半天js验证身份证的,从网上找了很多,自己也总结了一下,在此记录,以便以后使用查询方便,也供大家参考. 代码如下,可直接用 function isIdCardNo(num) { num = nu ...

  8. 利用GUID/UUID生成token及验证token的正确性

    本来有JWT这种生成token验证的强大工具,但有时考虑到项目的实际需求,会利用GUID/UUID来生成token,当然GUID/UUID能生成很多具有唯一性的验证结果,所以这里主要记录下GUID/U ...

  9. Python 验证身份证的正确性并获得相关的信息

    问题描述:输入身份证号,校验身份证号正确与否,不正确给予友情提示, 正确请获得该身份证号对应的是那个省或者直辖市的,出生日期,以及性别 关于身份证验证的相关方法,参考百度经验 链接:戳这里 pytho ...

最新文章

  1. 数字资产云交易所搭建开发平台,云交易的优势在哪?
  2. OpenCV的示例程序在哪里?
  3. 三种活体检测方式分析
  4. 价值6.11亿美元的入侵工具无人问津
  5. xieshiran:使用 R 语言开发评分卡模型
  6. 卸料装置弹性零件的计算方法_冲裁模卸料板的设计
  7. jieba分词并做分析
  8. 统计字符数(信息学奥赛一本通-T1187)
  9. Cloud Prizefight: OpenStack vs. VMware(转)-HA-FT
  10. 用户界面和兼容性测试
  11. VNPY2.0火币期货交易接口配置使用
  12. mybatis数据库连接池介绍和源码剖析
  13. linux下用C计算某一个目录总大小
  14. java数据结构的面试题_Java面试题——数据结构篇(持续更新中)
  15. layui表单验证必填;下拉列表必填;xmselect必填;layui vue下拉列表必填
  16. SEO人员,如何搭建你的网站基础框架?
  17. 迅雷漫画下载工具II beta3 v1.2.3.204
  18. C语言:十进制、BCD码互换
  19. android常用快捷键大全,AndroidStudio 快捷键使用总结大全
  20. python中字节(bytes)是如何转换成整型(long)的?

热门文章

  1. HTML的base href = “” /
  2. 数据库高可用性——SQL Server 2005数据库复制简单图解
  3. 解决IIS中HTTP/1.1 500 Server Error错误的方法
  4. 转:人气资源大集合~~~2014年12月
  5. openfire 打包发布
  6. 深入理解WMS(三):剖析Activity,View,Window之间的关系
  7. SizeBasedAndTimeBasedLog
  8. 第十五周项目二-洗牌(范形程序设计)
  9. bootstrap 多选框
  10. JqueryMobile Demo