|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
中间码是基于一个虚拟机器。源代码是最高层的,理论上从源代码开始直接编译成本地码能提供最大优化的。而中间码只能是转译成本地码,效率上难免受到损耗。根据虚拟机器所设定的体系结构的特点,和本地机器的差异的多少。这个示例只是复杂的依据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>
publicstaticclassIPHelper
{
///<summary>
///判别指定IP是不是为广域网IP
///</summary>
///<paramname="ipAddress">要测试的IP地点</param>
///<returns>地点分类</returns>
///<remarks>0:有效IP,1:局域网IP,2:广域网IP</remarks>
publicstaticintGetIPType(stringipAddress)
{
//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")
{
return1;
}
string[]ipAddressList=ipAddress.Split(.);
intipAddressTemp;
//反省IP地点是不是无效
if(ipAddressList.Length!=4)
{
return0;
}
if(!(int.TryParse(ipAddressList[0],outipAddressTemp)&&int.TryParse(ipAddressList[1],outipAddressTemp)
&&int.TryParse(ipAddressList[2],outipAddressTemp)&&int.TryParse(ipAddressList[3],outipAddressTemp)))
{
return0;
}
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))
{
return0;
}
//局域网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))
{
return1;
}
return2;
}
}
也许C#刚上市的时候有些抄袭Java吧,但自从C#2.0上市之后,整个局面就扭转乾坤了,不但Java在模仿C#,而且他从来都没能跟得上C#的脚步。 |
|