判断两个 IP 地址是否在同一个局域网中

这篇具有很好参考价值的文章主要介绍了判断两个 IP 地址是否在同一个局域网中。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目的

如何判断两个 IP 地址是否在同一个局域网中, 核心知识点是出于一个网络号, 主要是通过本身ip 与 所处的子网掩码进行 & 计算处理是否处于同一个局域网中(在 TCP/IP协议规则里面,IP地址与子网掩码做与运算)。文章来源地址https://www.toymoban.com/news/detail-536119.html

代码实现

#include <iostream>
#include <bitset>
#include <string>

bool checkSameSubnet(const std::string& ip1, const std::string& ip2, const std::string& subnetMask) {
    // 将 IP 地址和子网掩码转换为无符号整数
    unsigned long ip1Value = std::bitset<32>(ip1).to_ulong();
    unsigned long ip2Value = std::bitset<32>(ip2).to_ulong();
    unsigned long subnetMaskValue = std::bitset<32>(subnetMask).to_ulong();

    // 逻辑与运算,获取网络部分
    unsigned long subnet1 = ip1Value & subnetMaskValue;
    unsigned long subnet2 = ip2Value & subnetMaskValue;

    // 比较网络部分是否相同
    return subnet1 == subnet2;
}

int main() {
    std::string ip1 = "192.168.1.100";
    std::string ip2 = "192.168.1.200";
    std::string subnetMask = "255.255.255.0";

    bool sameSubnet = checkSameSubnet(ip1, ip2, subnetMask);
    if (sameSubnet) {
        std::cout << "IP addresses are in the same subnet." << std::endl;
    } else {
        std::cout << "IP addresses are not in the same subnet." << std::endl;
    }

    return 0;
}
``

到了这里,关于判断两个 IP 地址是否在同一个局域网中的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 并查集模板-两个操作:合并集合和查询两个元素是否属于同一个集合

    836. 合并集合 一共有 nn 个数,编号是  1∼n 1∼n,最开始每个数各自在一个集合中。 现在要进行 mm 个操作, 操作共有两种 : M a b ,将编号为 aa 和 bb 的 两个数所在的集合合并 ,如果两个数已经在同一个集合中,则忽略这个操作; Q a b , 询问编号为 aa 和 bb 的两个

    2024年02月13日
    浏览(59)
  • 怎么看同一个路由器有几个人在用(判断是否被蹭网)

    棱镜门事件折射出了很多令用户对隐私的担忧,其中这种现象也很常见,不如我们常用的路由器无线网络经常就会遭遇被他人入侵蹭网。今天本文不与大家讨论什么棱镜门事件,而是讨论下很多路由器用户比较关系的路由器有几个人在用的问题。有兴趣的朋友不妨阅了解下。

    2024年02月06日
    浏览(61)
  • 怎么让虚拟机的IP地址与物理机的IP地址处于同一个网段

    首先打开虚拟机的设置: 设置网络适配器的连接方式: 点击下拉按钮,查看连接方式 我选择VMent8是因为我的物理机网络适配器有一个VMent8的虚拟网卡,那怎么选择自己想要的虚拟网段呢? 打开物理机的 控制面板- 这两个都是物理机的虚拟网卡, 对VMent8 右键--属性--Internet协

    2024年02月11日
    浏览(61)
  • 判断两个IP是否在同一网段(SHELL实现)

    实现代码

    2024年03月19日
    浏览(80)
  • 题解 | #判断两个IP是否属于同一子网# 简单好理解

    题解 | #合并两个排序的链表# import java.util.*;/* * public class ListNode { * int val; * ListNode next =   题解 | #高精度整数加法# const rl = require(\\\"readline\\\").createInterface({ input: process.stdin   二本电气工程及其自动化投春招 听劝抗压 求指点 怎么修改   题解 | #查找两个字符串a,b中的最长公共子

    2024年03月24日
    浏览(72)
  • 【华为OD机试】1035 - 判断两个IP是否属于同一子网

    🍂个人博客首页: KJ.JK   🍂专栏介绍: 华为OD机试真题汇总,定期更新华为OD各个时间阶段的机试真题,每日定时更新,本专栏将使用Python语言进行更新解答,包含真题,思路分析,代码参考,欢迎大家订阅学习

    2024年02月02日
    浏览(58)
  • 【华为机试真题详解JAVA实现】—判断两个IP是否属于同一子网

        目录 一、题目描述 二、解题代码 IP地址是由4个0-255之间的整数构成的,用\\\".\\\"符号相连。 二进制的IP地址格式有32位,例如:10000011,01101011,00000011,00011000;每八位用十进制表示就是131.107.3.24 子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。 子网

    2023年04月09日
    浏览(75)
  • 怎么判断一个ip地址是否正确

    在网络通信和计算机领域中,IP地址(Internet Protocol Address)是一个关键的概念。但是,很多人对于如何判断一个IP地址是否正确感到困惑。本文将深入探讨这个问题,并提供一些实用的方法来验证IP地址的正确性。 IP地址是由四个数字组成,每个数字的范围是0到255之间,用点

    2024年02月09日
    浏览(65)
  • 微信小程序 通过setData 给两个变量设置同一个数组时,为什么修改一个变量,另一个会也被修改?

    在微信小程序中,使用 setData 方法更新数据时,如果给两个变量设置同一个数组,修改其中一个变量的值会导致另一个变量也被修改的原因是,数组是引用类型的数据,在内存中的存储方式是按引用地址存储。 当你将一个数组赋值给两个变量时,实际上两个变量共享同一块内

    2024年02月11日
    浏览(49)
  • bug--两个表格,数据来自于同一个抽屉表格,现在让两个表格的数据 不能一样--处理checked 和 disabled

      1、在 A表、B表 数据展示的组件里(根源),给新增触发的事件里,添加不同的type值,来区分是A表 还是B表 2、要把区分的 type 传给 addProSetRelation这个事件(找到哪里),把type传给 使用这个事件的方法(这里是因为 他是根据这个方法 把事件一级一级传下去的) 3、找到

    2024年02月12日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包