扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:阿虎 来源:yesky 2007年11月13日
关键字:
using System.Threading ; |
public delegate void UpdateList ( string sIP , string sHostName ) ; |
private System.DateTime StartTime ; |
public class ping { public UpdateList ul ; public string ip ; //定义一个变量,用以接收传送来的IP地址字符串 public string HostName ; //定义一个变量,用以向主进展传递对应IP地址是否在线数据 public void scan ( ) { IPAddress myIP = IPAddress.Parse ( ip ) ; try { IPHostEntry myHost = Dns.GetHostByAddress ( myIP ); HostName = myHost.HostName.ToString ( ) ; } catch { HostName = "" ; } if (HostName == "") HostName = " 主机没有响应!"; if ( ul != null) ul ( ip , HostName ) ; } //定义一个过程(也可以看出为方法),用以判断传送来的IP地址对应计算机是否在线 } |
void UpdateMyList ( string sIP , string sHostName ) { lock ( listBox1 ) { listBox1.Items.Add ( sIP + " " + sHostName ) ; if ( progressBar1.Value != progressBar1.Maximum ) { progressBar1.Value++ ; } if ( progressBar1.Value == progressBar1.Maximum ) { MessageBox.Show ( "成功完成检测!" , "提示" ) ; DateTime EndTime = DateTime.Now ; TimeSpan ts = EndTime-StartTime ; label4.Text = ts.Seconds.ToString ( ) + "秒" ; //显示扫描计算机所需要的时间 progressBar1.Value = progressBar1.Minimum ; } } } |
private void button1_Click(object sender, System.EventArgs e) { listBox1.Items.Clear ( ) ; //清楚扫描结果显示区域 StartTime = DateTime.Now ; //获取当前时间 string mask = numericUpDown1.Value.ToString ( ) + "." + numericUpDown2.Value.ToString ( ) + "." + numericUpDown3.Value.ToString ( ) + "." ; int Min = ( int ) numericUpDown4.Value ; int Max = ( int ) numericUpDown5.Value ; if ( Min > Max ) { MessageBox.Show ( "输入的IP地址区间不合法,请检查!" , "错误!" ) ; return ; } //判断输入的IP地址区间是否合法 int _ThreadNum = Max - Min + 1 ; Thread[] mythread = new Thread [ _ThreadNum ] ; //创建一个多个Thread实例 progressBar1.Minimum = Min ; progressBar1.Maximum = Max + 1 ; progressBar1.Value = Min ; int i ; for (i = Min ; i <= Max ; i++ ) { int k = Max - i ; ping HostPing = new ping ( ) ; //创建一个ping实例 HostPing.ip = mask + i.ToString ( ) ; HostPing.ul = new UpdateList ( UpdateMyList ) ; //向这个ping实例中传递IP地址字符串 mythread[k] = new Thread ( new ThreadStart ( HostPing.scan ) ) ; //初始化一个线程实例 mythread[k].Start ( ) ; //启动线程 } } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者