У меня есть инструмент 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;
}