实际编程中会遇到查找局域网机器的情况,这个时候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左右。