Я пытаюсь создать код, который позволит мне пинговать диапазон IP-адресов.
Я получаю 2 входа. Один - это адрес, с которого начинается диапазон, а другой - конец диапазона IP-адресов, который я хочу пропинговать. Затем я разбиваю строку и присваиваю значения каждого переменным, которые будут меняться (a, b, c, d, aa, bb, cc, dd).
Это логически правильно?
Это мой код:
public PingIPRange()
{
InitializeComponent();
txtFrom.Text = "250.250.250.250";
txtTo.Text = "254.254.224.254";
string[] from = txtFrom.Text.Split('.');
string[] to = txtTo.Text.Split('.');
int from1 = a = int.Parse(from[0]);
int from2 = b = int.Parse(from[1]);
int from3 = c = int.Parse(from[2]);
int from4 = d = int.Parse(from[3]);
int to1 = aa = int.Parse(to[0]);
int to2 = bb = int.Parse(to[1]);
int to3 = cc = int.Parse(to[2]);
int to4 = dd = int.Parse(to[3]);
tmrPingInterval.Tick += new EventHandler(tmrPingInterval_Tick);
}
void tmrPingInterval_Tick(object sender, EventArgs e)
{
if (d <= max)
{
if (d == max || d == dd)
{
c++;
d = 0;
}
if (c == max || c == cc)
{
d++;
c = 0;
}
if (b == max || b == bb)
{
c++;
b = 0;
}
if (a == max || a == aa)
{
b++;
a = 0;
}
if ((a == max && b == max && c == max && d == max) || (a == aa && b == bb && c == cc && d == dd))
{
tmrPingInterval.Stop();
}
txtDisplay.Text += a + "." + b + "." + c + "." + d + Environment.NewLine;
d++;
}
txtDisplay.SelectionStart = txtDisplay.Text.Length;
txtDisplay.ScrollToCaret();
}