原理

ip和掩码做与计算。如果结果相同,则证明两个ip在同一个网段

代码如下

#!/bin/bashIPPattern='^(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){3}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>$'function check_ip_valide()
{IP="$1"for special_ip in ${special_ips[@]}dolocal ret=$(echo $IP | grep ${special_ip})if [ -n "$ret" ];thenreturn 1fidoneif [[ "${IP}" =~ ${IPPattern} ]]; thenreturn 0elsereturn 1fi}
function calc_ip_net()
{sip="$1"snetmask="$2"check_ip_valide "$sip"if [ $? -ne 0 ];then echo "";return 1;filocal ipFIELD1=$(echo "$sip" |cut -d. -f1)local ipFIELD2=$(echo "$sip" |cut -d. -f2)local ipFIELD3=$(echo "$sip" |cut -d. -f3)local ipFIELD4=$(echo "$sip" |cut -d. -f4)local netmaskFIELD1=$(echo "$snetmask" |cut -d. -f1)local netmaskFIELD2=$(echo "$snetmask" |cut -d. -f2)local netmaskFIELD3=$(echo "$snetmask" |cut -d. -f3)local netmaskFIELD4=$(echo "$snetmask" |cut -d. -f4)local tmpret1=$[$ipFIELD1&$netmaskFIELD1]local tmpret2=$[$ipFIELD2&$netmaskFIELD2]local tmpret3=$[$ipFIELD3&$netmaskFIELD3]local tmpret4=$[$ipFIELD4&$netmaskFIELD4]echo "$tmpret1.$tmpret2.$tmpret3.$tmpret4"
}
tmpip1=$(calc_ip_net "$1" "$3")
tmpip2=$(calc_ip_net "$2" "$3")if [ "$tmpip1" != "$tmpip2" ];thenecho "no"
elseecho "same"
fi

实验结果

shell-判断两个ip是否在同一个网段相关推荐

  1. 如何判断两个IP地址是不是同一个网段(超实用)

    IP地址 IP地址被用来给Internet上的电脑一个编号.大家日常见到的情况是每台联网的PC上都需要有IP地址,才能正常通信.我们可以把"个人电脑"比作"一台电话&qu ...

  2. 【shell】shell-判断两个ip是否在同一个网段

    目录 判断脚本 原理 如何判断两个IP是否在同一网段 判断脚本 (转自:http://t.csdn.cn/3UmL3) 原理 ip和掩码做与计算.如果结果相同,则证明两个ip在同一个网段 #!/bin ...

  3. 判断两个IP是否在同一网段

    相信不只我一个人有过这样的想法:只要IP的前三段相同,就是在同一网段了.真相不是这样的. IP地址根据网络ID的不同分为5种类型,A类地址.B类地址.C类地址.D类地址和E类地址. 在IP地址3种主要 ...

  4. 如何判断两个IP是否属于同网段

    最近在开发中遇到了一个问题,pc用手机连的同一个wifi,但手机无法访问pc上启动的本地前端服务; 这里是pc端的ip信息; 这是手机的ip: pc端的ip地址为 192.168.1.120 子网掩码 ...

  5. 通过子网掩码留一个ip_教大家如何判断俩个IP是不是在同一个网段?什么是子网掩码?...

    一.什么是子网掩码? 在了解ip地址的网段之前,我们先来了解子网掩码,很多对网络了解不深的朋友都对子网掩码有些迷惑, 不了解它是用来干什么的? 子网掩码不能单独存在,它必须结合IP地址一起使用.子网掩 ...

  6. 判断两个IP地址(ipv4)是否在同一个网段

    我们通常会遇到的ip地址是这样的: ip地址:192.168.227.205 子网掩码:255.255.255.0 ip地址:192.168.226.202 子网掩码:255.255.255.0 19 ...

  7. 如何判断两个IP地址是不是处于同一网段?

    个人理解,欢迎指正. 一.要判断两个IP地址是不是在同一个网段,就将它们的IP地址分别与子网掩码做与运算,得到的结果-->网络号,如果网络号相同, 就在同一子网,否则,不在同一子网. 例:假定选 ...

  8. 如何确定两台主机是否在同一个网段?

    举例说明: 已知A.B两台主机的IP地址和子网掩码,判断他们是否在同一个网段. A:192.168.1.1/24      B:192.168.1.33/27 判断两台主机是否在同一个网段的方法: 用 ...

  9. 一个路由器两个网段互通_如何判断两个IP地址是否在同一个网段?什么是子网掩码?...

    前几天咱们了解:三种方法告诉你项目超过255个摄像机怎么设置IP?什么是公网ip?什么又是内网ip?为什么ip地址通常以192.168开头? 也学习了:二.三层交换机与路由器的区别! 但是有好多人对I ...

最新文章

  1. Windows C++中__declspec(dllexport)的使用
  2. 浅谈android中的目录结构
  3. android MVP 模式内存泄漏如何解决
  4. jQuery Form Plugin (jquery表单插件)
  5. Asp.net(C#)-彩色图片转化为黑白
  6. TCP/IP协议簇简介
  7. java中用jdom 如何创建xml文档/将数据写入XML中
  8. STM32项目(四)——暗室网关
  9. 微服务部署:蓝绿部署、滚动部署、灰度发布
  10. 内存读写函数实现进程间通信
  11. 打造自己的 nodejs 静态文件服务器(帖子内容,直接复制别人的)
  12. 第三章项目管理过程重点--转载
  13. python引用配置文件_python中配置文件的使用方法
  14. Java从json串中获取某个值
  15. 微星主板Ubuntu16.04安装教程
  16. fiddler抓不到pc微信小程序包解决办法
  17. 开根号的几类算法总结
  18. 台式计算机主板接口识别,硬件丨当前台式机主板接口知识普及与主板结构全讲解...
  19. 【Golang】golang开发微信公众号网页授权功能
  20. 指尖心跳,通过手指测量心率波形

热门文章

  1. 台式如何看计算机配置,电脑组装教程:怎么看电脑配置?教你如何查看电脑配置...
  2. python程序中如何合理处理[WinError 5]拒绝访问的错误
  3. 项目一 认识Linux操作系统
  4. Lucene之——搜索实例
  5. oracle注册表重建,一次Windows 注册表中注册表项目丢失导致的Oracle 数据库启动问题。...
  6. Kubernetes学习之Deployment控制器
  7. 投影html连接电脑,电脑如何链接投影仪_台式电脑主机怎么连接投影仪-win7之家...
  8. 手机学python_手机学python的app
  9. win10无法找到wlan选项问题解决
  10. 基于51单片机的自动窗帘控制系统