C# 检测VPN I';我连接到

C# 检测VPN I';我连接到,c#,visual-studio-2015,vpn,C#,Visual Studio 2015,Vpn,我目前正在开发一个桌面工具,用于自动与客户建立VPN连接。我想有一个好方法来确定我确实连接到了VPN。我目前正在考虑使用netstat rn中显示的路由表,并将其与我应该连接的IP进行比较 我的问题是,我如何才能在我的C#应用程序中获得这些IP,或者是否有更好的方法来确定我是否连接到VPN 提前谢谢 这太经典了,我花了几个小时寻找解决方案,当我请求帮助时,我自己就找到了。 对于那些想知道答案的人来说 try { ManagementObjectSearch

我目前正在开发一个桌面工具,用于自动与客户建立VPN连接。我想有一个好方法来确定我确实连接到了VPN。我目前正在考虑使用netstat rn中显示的路由表,并将其与我应该连接的IP进行比较

我的问题是,我如何才能在我的C#应用程序中获得这些IP,或者是否有更好的方法来确定我是否连接到VPN


提前谢谢

这太经典了,我花了几个小时寻找解决方案,当我请求帮助时,我自己就找到了。 对于那些想知道答案的人来说

try
        {
            ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_IP4RouteTable");
            ListViewItem buf;

            foreach (ManagementObject queryObj in searcher.Get())
            {
                string destination = queryObj["Destination"].ToString();
                string mask = queryObj["Mask"].ToString();
                string metric = queryObj["Metric1"].ToString();
                string interfaceIndex = queryObj["InterfaceIndex"].ToString();
                string nexthop = queryObj["NextHop"].ToString();
                string protocol =queryObj["Protocol"].ToString();
                string type = queryObj["Type"].ToString();
                string status;
                if (queryObj["Status"]!=null)
                {
                  status = queryObj["Status"].ToString();
                }
                else
                {
                   status = string.Empty;
                }


                buf = new ListViewItem(new string[] {destination,mask,metric,interfaceIndex,nexthop,protocol,status,typ});
                list_route.Items.Add(buf);

            }
        }
        catch (ManagementException ex)
        {
            MessageBox.Show("An error occurred while querying for WMI data: " + ex.Message);
        }

无论如何,谢谢大家花时间来帮助我

最好在你的帖子中包含必要的信息。所以当链接失效时,人们仍然可以在这里找到答案!