怎样判断两台计算机是否属于同一网段

如题所述

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

一个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];//默认网关
}
}

这样就能判断两台电脑是不是在同一网段内了。
温馨提示:答案为网友推荐,仅供参考
相似回答