چگونه یک ای پی در شبکه را با سی شارپ اسکن کنیم
سلام دوستان
در این مقاله قصد داریم با استفاده از سی شارپ یک ای پی را اسکن کنیم
خوب اول از همه فرم خود را مانند کاور مقاله طراحی کنید
و در ادامه از کد های زیر برای اسکن کردن استفاده کنید
private void btnScan_Click(object sender, EventArgs e)
{
string subnet = txtSubnet.Text;
progressBar.Maximum = 254;
progressBar.Value = 0;
lvResult.Items.Clear();
Task.Factory.StartNew(new Action(() =>
{
for (int i = 2; i < 255; i++)
{
string ip = $"{subnet}.{i}";
Ping ping = new Ping();
PingReply reply = ping.Send(ip, 100);
if (reply.Status == IPStatus.Success)
{
progressBar.BeginInvoke(new Action(() =>
{
try
{
IPHostEntry host = Dns.GetHostEntry(IPAddress.Parse(ip));
lvResult.Items.Add(new ListViewItem(new String[] { ip, host.HostName, "Up" }));
}
catch
{
MessageBox.Show($"Couldn't retrieve hostname from {ip}", "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
progressBar.Value += 1;
lblStatus.ForeColor = Color.Blue;
lblStatus.Text = $"Scanning: {ip}";
if (progressBar.Value == 253)
lblStatus.Text = "Finished";
}));
}
else
{
progressBar.BeginInvoke(new Action(() =>
{
progressBar.Value += 1;
lblStatus.ForeColor = Color.DarkGray;
lblStatus.Text = $"Scanning: {ip}";
lvResult.Items.Add(new ListViewItem(new String[] { ip, "", "Down" }));
if (progressBar.Value == 253)
lblStatus.Text = "Finished";
}));
}
}
}));
}
پایان.