C# WINFORM 局域网PING 工具(技术改变世界-cnblog)

WINFORM 局域网PING 工具(技术改变世界-cnblog) 需求: 1.实时更新 日期时间 2.可以ping多个IP 地址,必须判断 IP地址的正确性,不能为广播地址 3.对ping结果的显示 4.调用CMD命令 5.实现点击关闭,触发 关闭或者不关闭 缺点:由于能力有限,未能从异步和线程角度 考虑问题,导致 性能不是很好。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Diagnostics; namespace WindowsFormsApplication6 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { label1.Text = DateTime.Now.ToLocalTime().ToString();//加载的时候就显示时间 //实时更新 timer1.Enabled = true; timer1.Interval = 1000; } private void timer1_Tick(object sender, EventArgs e) { label1.Text = DateTime.Now.ToLocalTime().ToString() ; } private void button1_Click(object sender, EventArgs e) { listBox1.Items.Clear(); //判断正确的输入格式 if (textBox1.Text == string.Empty || textBox2.Text == string.Empty) { MessageBox.Show("IP地址不为空", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); return; } else { if (textBox2.Text.Length > 3 | textBox2.Text.Length<=0) { MessageBox.Show("第二组IP有误", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); return; } else if (int.Parse(textBox2.Text) == 255 || int.Parse(textBox2.Text) == 0) { MessageBox.Show("第二组IP为广播地址", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); return; } else { string[] ips = textBox1.Text.Split('.'); if (ips.Length != 4)//因为IP是4段 { MessageBox.Show("第一组IP有误", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); return; } if (int.Parse(ips[3]) == 0 || int.Parse(ips[3]) == 255) { MessageBox.Show("第一组IP为广播地址", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); return; } int i1=int.Parse(ips[3]); int i2=int.Parse(textBox2.Text); if(i1>i2) { MessageBox.Show("后面IP太小", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); return; } string temp; for (int i = i1; i <= i2; i++) { temp=Ping(i.ToString()); if (temp.Contains("Received = 1")) { listBox1.Items.Add(string.Format("提示:192.168.0.{0}存在", i)); continue ; } else { listBox1.Items.Add(string.Format("提示:192.168.0.{0}可能不存在", i)); continue; } } } } } private string Ping(string ip)//调用Ping方法 { Process p = new Process(); p.StartInfo.FileName = "cmd.exe";//获取程序的事件 注意FileName包含路径 p.StartInfo.UseShellExecute = false; //重定向 标准输出 输入 错误 p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.CreateNoWindow = true;//不显示窗口 p.Start(); p.StandardInput.WriteLine(string.Format("ping -n 1 192.168.0.{0}",ip)); p.StandardInput.WriteLine("exit"); return p.StandardOutput.ReadToEnd(); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { DialogResult result=MessageBox.Show("是否要关闭软件","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning); if (result == DialogResult.Yes) { e.Cancel =false;//这是一个关闭事件,不取消事件,也就是不关闭 } else { e.Cancel = true;//这是一个关闭事件,取消事件,就是关闭 } } private void richTextBox1_TextChanged(object sender, EventArgs e) { } } } 分类: WinForm
原文地址:https://www.cnblogs.com/meimao5211/p/3334201.html