csharpdoost
پنج شنبه 31 فروردین 1402, 00:31 صبح
دوستان سلام. من خیلی جستجو کردم یه کد خوب درباره اسکنر شبکه پیدا کنم اما متاسفانه جز کد زیر که خیلی هم کند هستش و یکی دو مورد دیگه چیزی زیادی گیرم نیومد.
ممنون میشم از دوستان راهنمایی کنن .
Task t1 = Task.Factory.StartNew(new Action(() =>
{
for (int i = int.Parse(EndHostTxtIP); i < int.Parse(EndHostTxtIP2); i++)
{
if (cancel) break;
string ip = $"{subnet}.{i}";
Ping ping = new Ping();
PingReply reply = ping.Send(ip, 10);
if (reply.Status == IPStatus.Success)
{
progressBar1.BeginInvoke(new Action(() =>
{
try
{
IPHostEntry host = Dns.GetHostEntry(IPAddress.Parse(ip));
listVAddr.Items.Add(new ListViewItem(new String[] { ip, host.HostName, "متصل" }));
}
catch
{
// MessageBox.Show($"Couldn't retrieve hostname from {ip}", "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
progressBar1.Value += 1;
lblStatus.ForeColor = Color.Blue;
lblStatus.Text = $"در حال جستجو: {ip}";
if (progressBar1.Value == 253)
lblStatus.Text = "پایان";
}));
}
else
{
progressBar1.BeginInvoke(new Action(() =>
{
progressBar1.Value += 1;
//lblStatus.ForeColor = Color.DarkGray;
lblStatus.Text = $"در حال جستجو: {ip}";
//listVAddr.Items.Add(new ListViewItem(new String[] { ip, "", "قطع" }));
if (progressBar1.Value == 253)
lblStatus.Text = "پایان";
}), token);
}
}
//if (cancel)
//{
// lblStatus.Text = "پایان";
// cancel = false;
//}
}), token);
ممنون میشم از دوستان راهنمایی کنن .
Task t1 = Task.Factory.StartNew(new Action(() =>
{
for (int i = int.Parse(EndHostTxtIP); i < int.Parse(EndHostTxtIP2); i++)
{
if (cancel) break;
string ip = $"{subnet}.{i}";
Ping ping = new Ping();
PingReply reply = ping.Send(ip, 10);
if (reply.Status == IPStatus.Success)
{
progressBar1.BeginInvoke(new Action(() =>
{
try
{
IPHostEntry host = Dns.GetHostEntry(IPAddress.Parse(ip));
listVAddr.Items.Add(new ListViewItem(new String[] { ip, host.HostName, "متصل" }));
}
catch
{
// MessageBox.Show($"Couldn't retrieve hostname from {ip}", "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
progressBar1.Value += 1;
lblStatus.ForeColor = Color.Blue;
lblStatus.Text = $"در حال جستجو: {ip}";
if (progressBar1.Value == 253)
lblStatus.Text = "پایان";
}));
}
else
{
progressBar1.BeginInvoke(new Action(() =>
{
progressBar1.Value += 1;
//lblStatus.ForeColor = Color.DarkGray;
lblStatus.Text = $"در حال جستجو: {ip}";
//listVAddr.Items.Add(new ListViewItem(new String[] { ip, "", "قطع" }));
if (progressBar1.Value == 253)
lblStatus.Text = "پایان";
}), token);
}
}
//if (cancel)
//{
// lblStatus.Text = "پایان";
// cancel = false;
//}
}), token);