public static NetworkInterface[] GetAllNetworkInterfaces()
 {
     if (NetworkInterface.runningOnUnix)
     {
         bool   flag   = false;
         IntPtr intPtr = Marshal.AllocHGlobal(8192);
         if (NetworkInterface.uname(intPtr) == 0)
         {
             string a = Marshal.PtrToStringAnsi(intPtr);
             if (a == "Darwin")
             {
                 flag = true;
             }
         }
         Marshal.FreeHGlobal(intPtr);
         try
         {
             if (flag)
             {
                 return(MacOsNetworkInterface.ImplGetAllNetworkInterfaces());
             }
             return(LinuxNetworkInterface.ImplGetAllNetworkInterfaces());
         }
         catch (SystemException ex)
         {
             throw ex;
         }
         catch
         {
             return(new NetworkInterface[0]);
         }
     }
     if (Environment.OSVersion.Version >= NetworkInterface.windowsVer51)
     {
         return(Win32NetworkInterface2.ImplGetAllNetworkInterfaces());
     }
     return(new NetworkInterface[0]);
 }