【发布时间】:2012-11-03 03:05:50
【问题描述】:
下午好,
谁能举例说明当本地机器通过 VPN (RAS) 连接到远程 windows 域网络时如何获取本地机器的 IP 地址?即我需要 VPN 地址,而不是远程用户的本地网络地址。
例如,我的服务器端 Windows 服务与我的客户端应用程序通信,需要创建所有连接用户及其 IP 地址的日志。
当使用本地网络上的计算机时,此解决方案非常简单,但我想知道如何获取通过 VPN 连接到服务器的用户的 IP 地址。请注意,IP地址get方法将在客户端执行并发送到服务器。
这是我当前的代码,仅在本地连接到域网络时才有效:
public static string GetLocalIPv4()
{
string ipv4Address = String.Empty;
foreach (IPAddress currrentIPAddress in Dns.GetHostAddresses(Dns.GetHostName()))
{
if (currrentIPAddress.AddressFamily.ToString() == System.Net.Sockets.AddressFamily.InterNetwork.ToString())
{
ipv4Address = currrentIPAddress.ToString();
break;
}
}
return ipv4Address;
}
我们的内部网络由 Windows SBS 控制,并使用诸如 mycompany.local 之类的域。
非常感谢您抽出宝贵时间,期待阅读您的回复。
罗伯
【问题讨论】:
-
vpn 另一端的远程地址几乎没有任何用处。考虑有人通过蜂窝数据链路进入 - 他们的 IP 将是蜂窝公司 NAT 网关后面的一些 10.x.x.x 私有 IP。对于使用酒店免费无线网络等的人来说也是如此......
标签: c# c#-4.0 network-programming ip-address