c# 在两个 ip 地址之间 ping
c# ping between two ip addresses
如何在 C# 中检查两台服务器是否从第三台服务器连接?
我在服务器 A 中,我想知道服务器 B 和服务器 C 是否已连接。
我只有代码来检查我是否连接到服务器 B 或 C。
我有:
public bool AreConnected(string ip)
{
bool connected= false;
Ping p = new Ping();
try
{
PingReply reply = p.Send(ip);
connected = reply.Status == IPStatus.Success;
}
catch (PingException)
{
// Discard PingExceptions and return false;
}
return connected;
}
这可能不是最好的方法,它需要机器 B 的管理员权限,但它确实有效。
使用PsExec。此工具允许您 运行 在远程计算机上执行命令。
创建一个命令行程序,将ip地址作为命令行参数,ping ip地址并输出结果。
然后 运行 PsExec(来自 C# 代码)在机器 B 上执行此类程序并收集结果(也来自代码)。
您需要使用 Process.Start 才能从 C# 代码执行 PsExec 命令。
我使用了 PsExec 并且工作正常,下面我的代码可能会对其他人有所帮助,
public bool IsPingable(string servA, string servB)
{
string path = Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory())) + "\Resources\PsExec.exe";
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.FileName = path;
p.StartInfo.Arguments = @"\" + servA + " ping " + servB + " -n 1";
p.StartInfo.RedirectStandardOutput = true;
p.Start();
string output = p.StandardOutput.ReadToEnd();
if (!output.Contains("100% loss"))
{
return true;
}
else
{
return false;
}
}
如何在 C# 中检查两台服务器是否从第三台服务器连接? 我在服务器 A 中,我想知道服务器 B 和服务器 C 是否已连接。 我只有代码来检查我是否连接到服务器 B 或 C。 我有:
public bool AreConnected(string ip)
{
bool connected= false;
Ping p = new Ping();
try
{
PingReply reply = p.Send(ip);
connected = reply.Status == IPStatus.Success;
}
catch (PingException)
{
// Discard PingExceptions and return false;
}
return connected;
}
这可能不是最好的方法,它需要机器 B 的管理员权限,但它确实有效。
使用PsExec。此工具允许您 运行 在远程计算机上执行命令。
创建一个命令行程序,将ip地址作为命令行参数,ping ip地址并输出结果。
然后 运行 PsExec(来自 C# 代码)在机器 B 上执行此类程序并收集结果(也来自代码)。
您需要使用 Process.Start 才能从 C# 代码执行 PsExec 命令。
我使用了 PsExec 并且工作正常,下面我的代码可能会对其他人有所帮助,
public bool IsPingable(string servA, string servB)
{
string path = Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory())) + "\Resources\PsExec.exe";
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.FileName = path;
p.StartInfo.Arguments = @"\" + servA + " ping " + servB + " -n 1";
p.StartInfo.RedirectStandardOutput = true;
p.Start();
string output = p.StandardOutput.ReadToEnd();
if (!output.Contains("100% loss"))
{
return true;
}
else
{
return false;
}
}