日期:2014-05-17  浏览次数:20916 次

快速检测IP是否在线
我使用Ping,如果不在线,基本上都是500ms才出一个。有什么方法可以快速得到结果
------解决方案--------------------
把timeout设置得低一些。

但是默认500毫秒是有讲究的。因为网络可能会有延迟,设想从你发出ping,到返回,如果需要501毫秒,那么即便它在线,也会视为不通。如果这个时间设置很小,那么误报率就会增大。因此默认是500毫秒。

你可以使用多个线程去ping多个地址,虽然每个还需要500毫秒等待,但是总时间却可以缩短。
------解决方案--------------------
试试这个
        [DllImport("Iphlpapi.dll")]
        private static extern int SendARP(Int32 destinationIp, Int32 sourceIp, ref Int64 mac, ref Int32 length);