比较两个ip子网

时间:2017-01-02 19:28:48

标签: c network-programming ip ipv4 subnet

如何判断两个ip是否在同一个子网上? 唯一的输入是ip地址和子网掩码! 使用 C / C ++ 计算两个ip是否具有相同子网的最佳方法是什么?

3 个答案:

答案 0 :(得分:2)

bool checkForSubnetEquality(in_addr_t ipA, in_addr_t ipB, uint32_t subnetMask) {
   return (ipA & subnetMask) == (ipB & subnetMask);
}

答案 1 :(得分:1)

    import serial
    import os

    ser = serial.Serial(port="COM17", baudrate=9600)
    ser.open()
    ser.write("\x2b")
    print int(ser.readline(4).encode("hex").replace("2b", "", 4), 16)
    ser.close()

    os.system("pause")

答案 2 :(得分:1)

您可以申请' xor'使用他们的面具对两个IP进行操作并在此之后进行比较。如果它们相同,则两个IP地址在同一子网中。

让我们来看看172.16.2.4/255.255.0.0和172.16.1.69/255.255.0.0 之后' xor'你会得到172.16.0.0'对于这两个地址,所以它们位于同一子网中。

问候。