您的位置:首页 > 理论基础 > 计算机网络

根据IP的地址段来判断网络是局域网还是广域网

2013-01-04 10:41 232 查看
这个只是简单的根据IP的地址段来判断网络是局域网还是广域网。但在某些复杂的网络情况下可能并不适用

我们认为ABC类外的IP地址就是广域网IP,ABC类IP的址段分别如下:

A类:10.0.0.0~10.255.255.255

B类:172.16.0.0~172.31.255.255

C类:192.168.0.0~192.168.255.255

示例代码如下:

/// <summary>

/// IP辅助类

/// </summary>

public static class IPHelper

{

/// <summary>

/// 判断指定IP是否为广域网IP

/// </summary>

/// <param name="ipAddress">要测试的IP地址</param>

/// <returns>地址分类</returns>

/// <remarks>0:无效IP,1:局域网IP,2:广域网IP</remarks>

public static int GetIPType(string ipAddress)

{

//ABC类外的IP地址为广域网IP

//A类:10.0.0.0~10.255.255.255

//B类:172.16.0.0~172.31.255.255

//C类:192.168.0.0~192.168.255.255

//返回值

//0:无效IP

//1:局域网IP

//2:广域网IP

if (ipAddress == "127.0.0.1")

{

return 1;

}

string[] ipAddressList = ipAddress.Split('.');

int ipAddressTemp;

//检查IP地址是否有效

if (ipAddressList.Length != 4)

{

return 0;

}

if (!(int.TryParse(ipAddressList[0], out ipAddressTemp) && int.TryParse(ipAddressList[1], out ipAddressTemp)

&& int.TryParse(ipAddressList[2], out ipAddressTemp) && int.TryParse(ipAddressList[3], out ipAddressTemp)))

{

return 0;

}

if (!(int.Parse(ipAddressList[0]) >= 0 && int.Parse(ipAddressList[0]) <= 255

&& int.Parse(ipAddressList[1]) >= 0 && int.Parse(ipAddressList[1]) <= 255

&& int.Parse(ipAddressList[2]) >= 0 && int.Parse(ipAddressList[2]) <= 255

&& int.Parse(ipAddressList[3]) >= 0 && int.Parse(ipAddressList[3]) <= 255))

{

return 0;

}

//局域网IP

if (int.Parse(ipAddressList[0]) == 10

|| (int.Parse(ipAddressList[0]) == 172 && int.Parse(ipAddressList[1]) >= 16 && int.Parse(ipAddressList[1]) <= 31)

|| (int.Parse(ipAddressList[0]) == 192 && int.Parse(ipAddressList[1]) == 168))

{

return 1;

}

return 2;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: