浏览代码

Always return IPv4 when pinging

deadmoon 4 年之前
父节点
当前提交
534f73f5a7
共有 1 个文件被更改,包括 7 次插入1 次删除
  1. 7 1
      Optimizer/Utilities.cs

+ 7 - 1
Optimizer/Utilities.cs

@@ -8,6 +8,7 @@ using System.Linq;
 using System.Management.Automation;
 using System.Net;
 using System.Net.NetworkInformation;
+using System.Net.Sockets;
 using System.Reflection;
 using System.Security.Principal;
 using System.ServiceProcess;
@@ -35,6 +36,8 @@ namespace Optimizer
 
         internal static Ping pinger = new Ping();
 
+        static IPAddress addressToPing;
+
         internal delegate void SetControlPropertyThreadSafeDelegate(Control control, string propertyName, object propertyValue);
 
         internal static void SetControlPropertyThreadSafe(Control control, string propertyName, object propertyValue)
@@ -633,7 +636,10 @@ namespace Optimizer
             PingReply reply;
             try
             {
-                reply = pinger.Send(nameOrAddress);
+                addressToPing = Dns.GetHostAddresses(nameOrAddress)
+                    .First(address => address.AddressFamily == AddressFamily.InterNetwork);
+
+                reply = pinger.Send(addressToPing);
                 return reply;
             }
             catch