您的位置:首页 > 其它

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

2020-04-04 18:31 399 查看

需求:

1.实时更新  日期时间

2.可以ping多个IP 地址,必须判断 IP地址的正确性,不能为广播地址

3.对ping结果的显示

4.调用CMD命令

5.实现点击关闭,触发 关闭或者不关闭

 

缺点:由于能力有限,未能从异步和线程角度 考虑问题,导致 性能不是很好。

 

View Code
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)
{

}




}
}



转载于:https://www.cnblogs.com/IAmBetter/archive/2012/01/13/2321797.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
amenfu7203 发布了0 篇原创文章 · 获赞 0 · 访问量 587 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐