输入一个字符串,判断是否是合法的IP地址或子网掩码
IP地址格式(不包括[])
[1-254].[0-254].[0-254].[0-254]子网掩码为前面是连续的1,然后全是0
转换成2进制是这样sample:11111111.11100000.00000000.00000000
10000000.00000000.00000000.00000000
11111111.11111111.11111111.10000000
IP地址格式(不包括[])
[1-254].[0-254].[0-254].[0-254]子网掩码为前面是连续的1,然后全是0
转换成2进制是这样sample:11111111.11100000.00000000.00000000
10000000.00000000.00000000.00000000
11111111.11111111.11111111.10000000
解决方案 »
- 关于线程的问题
- MVC部署问题!急!急!急!急!在线等!!!!!!
- 怎样才能读取ad的信息呢?谢谢了
- DataTable.LoadDataRow 方法 (Object[], Boolean) 是如何更新特定行的
- js中parseInt问题..
- 新手问题:请教web服务如何主动发送消息到客户端?
- MapXtreme打包的时候遇到问题!
- 请教linq to DataTable取前5条的例子
- 怎样把Excel中的表导入到数据库中(Sql server 2000)
- 大家说说看,平时都喜欢看哪些计算机方面的报纸、杂志?
- 请问这几行代码应该怎样改正呢?
- 如果一个表中有若干行记录,怎样将表中的每一行写成一个xml文件。即:
{
string[] vList = IP.Split('.');
if (vList.Length != 4) return false;
for (int j = 0; j < vList.Length; j++)
{
int i;
if (!int.TryParse(vList[j], out i)) return false;
if ((i < 0) || (i > 254)) return false;
if ((i == 0) && (j == 0)) return false;
}
return true;
}public bool 检查掩码(string 掩码)
{
string[] vList = 掩码.Split('.');
if (vList.Length != 4) return false; bool vZero = false; // 出现0
for (int j = 0; j < vList.Length; j++)
{
int i;
if (!int.TryParse(vList[j], out i)) return false;
if ((i < 0) || (i > 255)) return false;
if (vZero)
{
if (i != 0) return false;
}
else
{
for (int k = 7; k >= 0; k--)
if (((i >> k) & 1) == 0) // 出现0
vZero = true;
else if (vZero) return false; // 不为0
}
}
return true;
}private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(检查IP("1.0.0.127").ToString());
MessageBox.Show(检查IP("261.0.0.127").ToString());
MessageBox.Show(检查IP("0.0.0.127").ToString());
MessageBox.Show(检查掩码("255.252.0.0").ToString());
MessageBox.Show(检查掩码("255.0.0.1").ToString());
MessageBox.Show(检查掩码("255.255.255.255").ToString());
}