IP 比较大小的目的是为了确认IP 范围的正确性,前提是必须是同一网段的

原理:举个IPV 4 的例子:

127.0.0.1 和 128.0.0.2 是不同的两个网段,不同网段下边的IP是无法对比大小的,因为互不通信,互不影响。

只有在同一个网段的两个 IP 才能比较大小,那么简单的来说,在网段相同的情况下,只用判断最后一部分的大小关系即可

IPV 6 是十进制的,以" . "隔开,切分为数组之后,然后在进行比较最后一位即可

IPV 6 是十六进制的,以" : "隔开,需要先转换为十进制的,然后在进行比较

以下是IPV 4判断范围始终的代码:

var ip1 = "127.0.0.4";
var ip2 = "127.0.0.5";
function trans(ip){var arr1 = ip.toUpperCase().split('.');   // 将 IPV4 先用split 切为数组,return parseInt((arr1[arr1.length]-1));  // 找到数组最后一项,return 出去// return parseInt(ip.toUpperCase().split('.')[ip.toUpperCase().split('.').length-1]); // 如果担心多余变量的话,可以直接return 出去,二选一,
}
function result(start,end){return trans(start) < trans(end); // 传入开始IP 和 结束 IP ,通过trans 获得IP了最后一项的一串十进制的数字
}
console.log(result(ip1,ip2))
直接调用就可以得到一个布尔值,通过布尔值来添加错误提示即可

以下是IPV 6判断范围始终的代码:

var ip1 = "fd00:dead:beef:58::9";
var ip2 = "fd00:dead:beef:58::13";
function trans(ip){var arr1 = ip.toUpperCase().split(':');   // 将 IPV6 先用split 切为数组,return parseInt((arr1[arr1.length]-1),16);  // 找到数组最后一项,然后转化为10进制的// return parseInt(ip.toUpperCase().split(':')[ip.toUpperCase().split(':').length-1],16); // 如果担心多余变量的话,可以直接return 出去,二选一,
}
function result(start,end){return trans(start) < trans(end); // 传入开始IP 和 结束 IP ,通过trans 获得IP了最后一项的一串十进制的数字
}
console.log(result(ip1,ip2))
直接调用就可以得到一个布尔值,通过布尔值来添加错误提示即可

IPV 6 / IPV 4大小比较,判断IPV6/IPV4范围的开始和结束相关推荐

  1. 时间日期大小比较判断,时间戳/时间 - 转换

    时间日期大小比较判断,时间戳/时间 - 转换 当前时间转为时间戳: var currentTimestamp = new Date().getTime(); 当前时间对象 var curDate = ...

  2. java 时间判断大小_java判断时间大小

    //构造日期格式yyyy-MM-NN SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date d ...

  3. 如何根据IP地址判断是IPv4还是IPv6

    IPv4地址的书写形式为:"192.168.0.1" IPv6地址的书写形式为:"2001:DB8:85A3:8D3:1319:8A2E:370:7344" 给 ...

  4. javascript判断IPV6格式

    随着ipv6的普及,在web上添加ip6地址的要求逐渐增多,下面这个函数是我按照ipv6的定义写的判断,可以用来判断正常的,缩写的ipv6格式,同时可以判断ipv6和ipv4混合的格式: //统计 1 ...

  5. 判断IPV6地址格式是否正确

    1.判断IPV6地址格式是否正确 此功能代码实现判断IPV6地址是否正确,正确返回1,错误误返回0. #define H(x) ((unsigned char *) & (x) )[0] #d ...

  6. c语言判断ipv6地址合法,判断IPv6地址合法性

    在 头文件下有下列这些宏用于判断IPv6地址合法性 返回0代表true,返回非零值代表ipv6地址为非指定类型的的地址(false) intIN6_IS_ADDR_UNSPECIFIED(const ...

  7. IPV6 IPV4双栈互通与静态路由

    实验名称:ipv6 ipv4双栈互通与静态路由 实验目的:路由器和主机上同时配置ipv4和ipv6,最后实现不同协议栈都能互连互通 实验拓扑图: 实验主要配置步骤: 如图配置PC的ip地址和ipv6地 ...

  8. php修改ip6地址为ip4,CentOS7 设置静态IPv6/IPv4地址

    1 环境准备 实验均在Vmware Workstation虚拟机上完成,上网方式选择桥接模式,保证网络支持IPv6,为了操作方便,我们使用root用户登录系统 1.1 Linux系统版本 CentOS ...

  9. 双栈路由Linux,IPV6 IPV4双栈互通与静态路由

    实验名称:ipv6 ipv4双栈互通与静态路由 实验目的:路由器和主机上同时配置ipv4和ipv6,最后实现不同协议栈都能互连互通 实验拓扑图: 实验主要配置步骤: 如图配置PC的ip地址和ipv6地 ...

最新文章

  1. 经常使用的npm命令
  2. 学python要基础吗-自学Python要有其他语言基础吗?
  3. MapReduce多个job同时使用的方式(从网上找到的案例,原始博文:http://www.cnblogs.com/yjmyzz/p/4540469.html)
  4. oracle分歧处理,ORACLE 过程中容错处理
  5. php获取当前世界,php获取网站alexa世界流量排名代码
  6. wex5部署教程到数据库
  7. linux php 语法加亮,用js函数PHP语法加亮
  8. Java(2)数据类型转换、变量和常量
  9. 要是面试官再问我volatile,我就这么答
  10. 关于sip软电话嵌入到网页web端的学习----第一天(1)(高手指点)
  11. ODM、JDM、OBM 、OEM概念的区别与理解
  12. 2020年中国SCADA行业产值、市场规模及竞争格局分析[图]
  13. Ubuntu安装Gcc时,显示“无法解析域名cn.archive.ubuntu.com”,如下方式可解决
  14. 常用的数学函数以及浮点数处理函数
  15. 嵌入式计算机的关键特征,与通用计算机的区别
  16. 【Python爬虫】MongoDB爬虫实践:爬取虎扑论坛
  17. 马化腾: 你想想不充钱能不能玩这游戏? 丁磊:你仔细想想不充钱能不能玩这游戏? 张栋:CNM我就问你不充钱能玩我运营的游戏吗?
  18. ZJOI2016一点也不好玩啊
  19. 莫烦---Pytorch学习
  20. php网页右下方广告窗口,javascript实现右下角广告框效果

热门文章

  1. web开发优秀资源下载
  2. U盘安装veket随身系统
  3. 有趣的汉语:同音文(一):《季姬击鸡记》
  4. Linux中如何配置JDK8
  5. 一手好字从楷书练起,硬笔楷书的练习方法
  6. 电脑清理——C盘深度清理腾出10G空间 NVIDIA更新驱动删除
  7. 阿里面试回来,想和程序员谈一谈
  8. 与第三方ERP系统同步数据总结
  9. ubuntu的简单搜索命令
  10. 类型多样的自然风景海外PPT模板素材,速来收藏