- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
下午好
任何人都可以举例说明在通过 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 之类的域。
非常感谢您抽出宝贵时间,我期待着阅读您的回复。
罗布
最佳答案
正如@MarcB 的评论所指出的,想不出您可能需要该信息的充分理由...因此,如果您能出于好奇解释此信息在应用程序中的用途,那将会很有趣。
但是,关于使用 Dns.GetHostAddresses 为机器枚举 IP 地址,这里和网上有很多不正确的答案。大多数人似乎没有意识到在配置的 DNS 解析器中查找机器名称与枚举机器地址之间的区别。这些是非常不同的事情,虽然在许多情况下它似乎会返回正确的结果,但这绝对是错误的方法,因为它们不是一回事。例如,请参阅此处的一篇文章链接,其中原始发帖人将不正确的回复标记为答案,但正确的回复在@StephanCleary 下方。看: Get IPv4 Addresses
不同之处在于您要查看机器配置并枚举您感兴趣的任何 IP 地址,从机器自己的 TCPIP 堆栈中定位。上面的代码和许多不正确的响应尝试在 DNS 解析器中查找名称。一旦该部分正确无误,您就应该能够根据网络适配器(按名称或其他属性)确定 VPN 连接。
关于C# - 如何在连接到 (RAS) VPN 时获取 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13381871/
我的代码遵循 theory : Set-VpnConnection -Name fr1-ovpn-tcp.pointtoserver.com -SplitTunneling $True Set-Vpn
我正在尝试通过我的主机将我的 Vagrant CentOS 机器连接到 VPN。我跟着这个:https://gist.github.com/mitchellh/1277049 但我仍然无法连接到仅限
我已阅读 this ,但他们提到他们将在后续文章中描述选项,但看起来似乎从未写过。我有什么选择? 如果重要的话我会使用 OpenVPN,并且我可以访问服务器和客户端配置。 最佳答案 我认为有以下可能的
已关闭。这个问题是 not about programming or software development 。目前不接受答案。 这个问题似乎不是关于 a specific programming
我有一个场景,我在 Windows Azure 中有一个 Windows VM,需要连接到外部客户网络(并连接到不在 Azure 中的数据库)。 此流量是单向的,因为只有我的虚拟机需要连接到客户的数据
我在 Windows 7 中建立了一个名为“我的 VPN”的 VPN 连接,它保存了凭据。因此,当我在 Windows 中手动启动 VPN 时,它会立即连接,而无需询问用户的登录名或密码。 我现在想使
我的办公室网络使用 Pulse Secure 连接到 VPN。我正在使用 ngrok 隧道化我的 Python 脚本。当 VPN 关闭时,ngrok 成功隧道我的服务器,但 Python 脚本需要访问
我正在使用基本的 Cisco VPN 客户端(我相信是 v.5)。无论如何以编程方式确定特定配置文件(或与此相关的任何配置文件)是否已连接? 我希望以某种方式从客户端本身获得状态。我不想尝试 ping
在我的企业中,在听到社区的赞誉后,我们开始迁移到基于 WSL2 的解决方案。 但是,在我们连接到我们的企业 VPN 后,WSL 无法连接到外部网站(以及 VPN 内部的网站)。 似乎是windows内
有 VPN 的系统设置。我可能会根据 VpnService 添加额外的 VPN 服务类(class)。正如我所见,有一个方法 setConfigureIntent 看起来与我需要的东西相似,但我没有看
我有一个 WorkRequest我想在设备有互联网连接时运行。 Constraints似乎是这样做的方法 - 我可以定义一个 NetworkType像这样的约束: val constraints =
我想监控包含使用 zabbix 安装的 VPN(strongswan) 的服务器。 从我的 Zabbix 服务器无法访问安装在我的 VPN 服务器中的 zabbix 客户端。他们有什么方法可以打开za
我目前正在通过 Juniper 使用 Web 界面进行 VPN,该界面要求输入用户名和密码。我想以编程方式连接,但我必须使用 nclauncher.exe ,这需要我进入一个“境界”。 如何找出我正在
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 2年前关闭。 Improve this qu
早上好! 我使用 check point mobile 连接到我的客户端 VPN,并且我在 docker 中有 2 个容器:mysql 和 karaf 都共享我使用命令 docker network
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4 个月前关闭。 Improve t
我尝试了几天在 2 个站点之间创建 VPN 隧道,但没有成功。 场景 我有以下场景: 站点 A 的 IP 地址为 192.168.1.0/24,网关 GWA 的地址为 192.168.1.254 和
我从不止一位 IT 经理那里听说,他们不允许用户使用 RDP 从外部连接到他们的内部网络,因为这不安全。他们声称,如果他们允许他们的用户这样做,那么外部的任何人都可以访问他们的网络。 我不明白。要使用
大约一周以来,一些用户在尝试使用 Azure VPN 客户端进行连接时随机遇到了此问题。有些人已经连续一周遇到这个问题,而另一些人则已经经历了一段时间才自行解决。 尝试连接时,身份验证成功,但 VPN
大约一周以来,一些用户在尝试使用 Azure VPN 客户端进行连接时随机遇到了此问题。有些人已经连续一周遇到这个问题,而另一些人则已经经历了一段时间才自行解决。 尝试连接时,身份验证成功,但 VPN
我是一名优秀的程序员,十分优秀!