我有一个包含3100个子网(192.168.1.0/24)的导入excel表单为例。我希望能够用存储的变量搜索前3个八位字节。如果我可以得到这个结果,我可以编辑电子表格,只包含他前3个八位字节,并在计划的未来得到我想要的结果。非常感谢你提前。使用3个八位字节(0.0.0)并存储为变量
string octets = ("10.2.30");
var match = false;
for (int i = 0; i < xlRange.Rows.Count; i++)
{
IPAddress excelIP;
if (IPAddress.TryParse(xlWorksheet.Cells[i + 1, 1].Value.ToString(), out excelIP))
{
if (excelIP.ToString().Equals(octets))
{
match = true;
Console.Write(excelIP.ToString());
Console.WriteLine(" -This id was found");
}
}
}
if (!match)
{
Console.WriteLine("No Match ");
}
xlWorkbook.Close(); xlApp = null;
}
10.2.300永远不会匹配一个合法的IP,因为一个字节不能去上述255 –
哎呀,我加了一个额外的0,让我解决这个问题! – gahser1
如果单元格值是CIDR格式,我不认为'IPAddress.TryParse()'会成功。你可能需要做'IPAddress.TryParse(xlWorksheet.Cells [i + 1,1] .Value.Split('/')[0],out excelIP)''。然后你会想用'excelIP.ToString()。StartsWith(octets)',因为你的3字节字符串永远不会匹配4字节的IP字符串。当然,你可能会遇到“192.168.100.1”以“192.168.10”开头的问题,所以你可能会遇到一些不好的命中。 – itsme86