通过用户输入的IP地址范围(通过各种方式输入),我想确定哪些机器上运行了我可以进行通信的软件。
以下是基本过程:
1. Ping这些地址以查找可用机器 2. 连接到可用机器上的已知套接字 3. 向成功建立的套接字发送消息 4. 将响应与预期响应进行比较
对于我来说,步骤2-4很直截了当。在.NET中实现第一步的最佳方法是什么?
我正在查看System.Net.NetworkInformation.Ping类。我应该同时ping多个地址以加快进程速度吗?如果我一次只ping一个地址并设置长时间超时,那可能需要很久。但是,如果超时时间短,我可能会错过一些可用的机器。
有些时候,即使我知道地址指向的是活动主机,Ping似乎也会失败。在请求被丢弃的情况下,我需要ping两次吗?
最重要的是,当我断开网络电缆扫描大量地址时,Ping会在FreeUnmanagedResources()中抛出NullReferenceException异常!
请提供有关像这样扫描IP范围的最佳方法的指针。
以下是基本过程:
1. Ping这些地址以查找可用机器 2. 连接到可用机器上的已知套接字 3. 向成功建立的套接字发送消息 4. 将响应与预期响应进行比较
对于我来说,步骤2-4很直截了当。在.NET中实现第一步的最佳方法是什么?
我正在查看System.Net.NetworkInformation.Ping类。我应该同时ping多个地址以加快进程速度吗?如果我一次只ping一个地址并设置长时间超时,那可能需要很久。但是,如果超时时间短,我可能会错过一些可用的机器。
有些时候,即使我知道地址指向的是活动主机,Ping似乎也会失败。在请求被丢弃的情况下,我需要ping两次吗?
最重要的是,当我断开网络电缆扫描大量地址时,Ping会在FreeUnmanagedResources()中抛出NullReferenceException异常!
请提供有关像这样扫描IP范围的最佳方法的指针。