Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#检查域是否处于活动状态_C#_Networking_Hostname - Fatal编程技术网

c#检查域是否处于活动状态

c#检查域是否处于活动状态,c#,networking,hostname,C#,Networking,Hostname,我想知道如何检查域是否为live in c# 我做的 IPAddress[] addresslist = Dns.GetHostAddresses("domain"); 它返回的IP(s),这是好的,但我想检查它是否是活的(如ping) 我只需要知道电脑是否与服务器在同一个网络中,因此我有一个要检查的函数,但函数基于上面的代码,它返回IP,但我注意到它基于缓存的DNS 我想添加另一个检查功能,看看服务器是否在线 干杯您可以使用该方法 编辑:或直接获取主机名的重载之一。 MSDN中的示例: P

我想知道如何检查域是否为live in c#

我做的

IPAddress[] addresslist = Dns.GetHostAddresses("domain");
它返回的IP(s),这是好的,但我想检查它是否是活的(如ping)

我只需要知道电脑是否与服务器在同一个网络中,因此我有一个要检查的函数,但函数基于上面的代码,它返回IP,但我注意到它基于缓存的DNS

我想添加另一个检查功能,看看服务器是否在线

干杯

您可以使用该方法

编辑:或直接获取主机名的重载之一。

MSDN中的示例:

Ping pingSender = new Ping ();
PingReply reply = pingSender.Send ("www.contoso.com");
if (reply.Status == IPStatus.Success)
{
    Console.WriteLine ("Address: {0}", reply.Address.ToString ());
    Console.WriteLine ("RoundTrip time: {0}", reply.RoundtripTime);
    Console.WriteLine ("Time to live: {0}", reply.Options.Ttl);
    Console.WriteLine ("Don't fragment: {0}", reply.Options.DontFragment);
    Console.WriteLine ("Buffer size: {0}", reply.Buffer.Length);
}
else
{
    Console.WriteLine (reply.Status);
}

如果您需要使用远程系统执行任何类型的任务,那么预检查将无法确保您能够执行该任务-网络和主机不是100%可靠的,并且在检查操作期间正确的内容在尝试实际任务时可能不再正确,或者在执行任务的整个过程中

唯一明智的做法是尝试您需要执行的任务,并以安全的方式处理错误、超时等。这可能会让用户知道故障,或者重试(每次尝试之间可能会增加延迟),或者只是将错误记录在某个位置。

该属性允许您检测网络接口是否已连接(打开)

该方法将为您提供IP信息


您可以使用此功能检查计算机是否在局域网上,然后在连接的情况下执行所需操作(如ping)。

什么是“活动”对您而言?你能打吗?也就是说有一个正在运行的Web服务器?如果服务器已启动并正在运行,程序只需检查域并查看它是否已启动,然后(我已完成此操作)它将检查IP地址是否与原始地址匹配,简单地说,这是一种内部应用程序的检查机制,只有当机器连接到我们的网络时,它才会执行某些任务work@Data-基本-如果它在未连接到您的网络时工作,是否会很糟糕?因为主机和IP地址很容易被克隆/欺骗。@Damien_不信者,不,这并不坏,它只是一个简单的应用程序,我们构建它来完成一些任务,而不是一个关键的任务@数据库,你已经添加了一个赏金,你在下面的答案中有什么遗漏吗?嗨,谢谢,但是其他的对我不起作用!它只是显示nothing@Data-根据上面的确切示例和主机名,我在控制台上获得了
TimedOut
。如果在else部分设置断点会发生什么情况?有趣的是,上面的示例(“www.contoso.com”)现在可以使用断点,但是当我使用我们的域时,它只在我的电脑连接到网络时才起作用,当我断开电缆时,它就不会显示超时情况!!!别忘了目标上的防火墙可能会阻止ping请求。不过,这很好,这会给应用程序一条消息,不运行某些功能,这很好。谢谢,我只需要知道某个主机是否处于活动状态!如果是这样的话,这个程序就可以运行了(这是一个供我们在工作中内部使用的应用程序),干杯谢谢这听起来是一个很好的开始方式,我将在周四测试它,那时我将在工作中:-)