实际编程中会遇到查找局域网机器的情况,这个时候ping命令对我们帮助比较大,一般来说,都是在命令行中输入“ping XXX -t”,下面的方法是在C#编码中使用Ping。
原文地址:http://zhidao.baidu.com/link?url=Hrfa4uVm_QD_l9VnrY4ksK4yjTWwaS1L7ApRcLmCbMXnskXD3lUm0TIhASFIsuAnt-JKc9NpzAYYYAdA0DbtBxCDNI9dMsKp0XBLb5CYTDm
list<string> ipList=new list<string>();
public void getIP() { //获取本地机器名 string _myHostName = Dns.GetHostName(); //获取本机IP string _myHostIP = Dns.GetHostEntry(_myHostName).AddressList[0].ToString(); //截取IP网段 string ipDuan = _myHostIP.Remove(_myHostIP.LastIndexOf('.')); //枚举网段计算机 for (int i = 1; i <= 255; i++) { Ping myPing = new Ping(); myPing.PingCompleted += new PingCompletedEventHandler(_myPing_PingCompleted); string pingIP = ipDuan + "." + i.ToString(); myPing.SendAsync(pingIP, 1000, null);//此处为异步方式,也可以采用send方法的同步方式 } } void _myPing_PingCompleted(object sender, PingCompletedEventArgs e) { if (e.Reply.Status == IPStatus.Success) { ipList.Add(e.Reply.Address.ToString()); } } 实际测试中,空IP一般需要实际0.5S左右,而有主机的IP一般检测时间不到0.1S,这样254个可能中,实际时间120左右。