C#: проверьте соединение inte rnet (корпоративное, частное, LAN, WLAN, VPN и т. Д. c.) - PullRequest
0 голосов
/ 23 января 2020

У меня есть инструмент windows, написанный на C#, который должен проверять, как клиент подключен к сети. Клиент подключен через корпоративную сеть или частную сеть? Как? VPN, WLAN, LAN?

См. Мой первый код ниже. Это работает, но диапазоны IP-адресов не уникальны. Таким образом, существует вероятность того, что частная сеть имеет тот же диапазон IP, что и у нас на предприятии. Как я могу проверить, доступен ли внутренний DNS? Если DNS доступен, клиент подключается через корпоративную сеть.

Спасибо за помощь!

  using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, 0))
  {
       socket.Connect("8.8.8.8", 65530);
       IPEndPoint endPoint = socket.LocalEndPoint as IPEndPoint;
       localIP = endPoint.Address.ToString();
   }

   EnterpriselocalIP = localIP.Substring(0, 5);
   VPNlocalIP = localIP.Substring(0, 6);

    if (EnterpriselocalIP == "10.49" || EnterpriselocalIP == "10.41")
    {
        label3.Text = "IP address: " + localIP + "\r\nConnection via Enterprise CH network\r\nWLAN or LAN ";
        EnterpriseNetwork = true;
    }
    else if (VPNlocalIP == "171.33")
    {
        label3.Text = "IP address: " + localIP + "\r\nConnection via Enterprise CH network\r\nVPN ";
        EnterpriseNetwork = true;
        VPN = true;
    }
    else
    {
        label3.Text = "IP address: " + localIP + "\r\nConnection via private network\r\nWLAN or LAN ";
        PrivateNetwork = true;
     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...