C#.NET:如何选择在运行时连接我的应用程序的网络适配器

时间:2017-09-06 09:05:30

标签: c# .net networking wifi lan

我的笔记本电脑连接到局域网和WIFI并具有单独的网络连接, 我的SQL服务器与我的局域网在同一个网络中,我有一个功能,即首先运行SQL Server,然后运行查询,现在问题是每次运行我的Dekstop应用程序时选择WIFI连接到PING服务器而不是LAN。 我可以获得一个网络适配器列表,并确定哪个是LAN或WIFI,但我如何告诉我的应用程序使用哪个?

NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in nics)
{
    if (adapter.OperationalStatus == OperationalStatus.Up)
    {
        if (adapter.NetworkInterfaceType == NetworkInterfaceType.Wireless80211)
        {
          MessageBox.Show("No Connection to SQL Server");
        }
        else
        {         
          GetPING();  //PING SERVER FUNCTION IF TRUE
          MessageBox.Show("Connected to SQL, Run App Now.");
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您可以通过访问NetworkInterface.GetIPProperties().UnicastAddresses属性获取在网络接口上设置的所有IP地址。之后,您需要做的将取决于您是如何实现PING功能的。

  1. 如果您只是执行PING.exe,那么使用-S选项可以让您对要用于ping的源地址进行spicification。
  2. 如果您使用Socket发送icmp echo消息,则需要调用Socket.Bind方法来指定本地端点。