例として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オクテットが255 –
の上に行くことができないので、有効なIPと一致することはありませんおっと、私は余分な0を追加しました、私はそれを修正しましょう! – gahser1
セルの値がCIDR形式であれば、 'IPAddress.TryParse()'は成功するとは思われません。おそらく 'IPAddress.TryParse(xlWorksheet.Cells [i + 1、1] .Value.Split( '/')[0]、out excel)'を実行する必要があります。次に、3オクテットの文字列が4オクテットのIP文字列と決して一致しないので、 'excelIP.ToString()。StartsWith(octets)'を使いたいでしょう。もちろん、 "192.168.100.1"が "192.168.10"で始まるところで問題が発生する可能性があります。 – itsme86