如何判断两台电脑是不是在同一网段内

来源:互联网 发布:河南建筑工程预算软件 编辑:程序博客网 时间:2024/04/28 01:58

如何判断两台电脑是不是在同一网段内。

一个IP地址分为网络地址和主机地址。其中网络地址是用来区分是否在同一网段内。那如何区分网络地址和主机地址呢?其实是通过子网掩码来实现的。

例如:一个IP地址为:172.20.100.52 
子网掩码为:255.255.255.192

把子网掩码用二进制表示:11111111.11111111.11111111.11000000

其中子网掩码对应“1”全部为网络地址。主机地址全部为:“0”

这里有26位为网络地址。主机地址为6位。

那么他表示一个IP地址的前26为网络地址。

把IP地址用二进制表示:10101100.00010100.01100100.00110100

26位网络地址为:10101100.00010100.01100100.00000000

用十进制表示:172.20.100.0

所以他的网络地址为:172.20.100.0


C# 获取IP地址和子网掩码

首先。添加程序集,引入命名空间 using system.management。

ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection nics 
= mc.GetInstances();
foreach (ManagementObject nic in nics)
{
        
if (Convert.ToBoolean(nic["ipEnabled"]) == true)
        {
            
string mac = nic["MacAddress"].ToString();//Mac地址
              string ip = (nic["IPAddress"as String[])[0];//IP地址
              string ipsubnet = (nic["IPSubnet"as String[])[0];//子网掩码
              string ipgateway = (nic["DefaultIPGateway"as String[])[0];//默认网关
         }
}

这样就能判断两台电脑是不是在同一网段内了。

0 0