gpt4 book ai didi

c# - 在 RasDial 之后获取 IP 地址/接口(interface)号

转载 作者:太空狗 更新时间:2023-10-29 20:29:09 31 4
gpt4 key购买 nike

在带有 .NET 的 C++ 中,我试图获取刚刚与 RasDial 连接的 RASCONN 的 IP 地址或接口(interface)名称(我有 HRASCONN 指针)。我发现 MSDN API 令人困惑,经过几个小时的搜索我找不到正确的调用(但它们似乎必须存在)。

如果有更好的方法来做到这一点,这里的目标是拥有一些唯一的标识符,这样当我稍后在我的管理 C# 中调用 NetworkInterface.GetAllNetworkInterfaces() 时,我可以选择正确的连接。

最佳答案

您需要查看 RasGetProjectionInfo 函数并使用您之前检索到的 HRASCONN 指针。 RASP_PppIp 应该是传入的 rasprojection 值,以获取包含您的 IP 地址的 RASPPIP 结构。我会发布一些 C++ 代码供您使用,但这不是我最好的语言并且不想让自己难堪。

这里有一些有用的链接可以帮助您:

RasGetProjectionInfo:http://msdn.microsoft.com/en-us/library/aa377548(v=vs.85).aspx

RASPPPIP:http://msdn.microsoft.com/en-us/library/aa377634(v=vs.85).aspx

由于您的应用程序的一部分似乎正在使用 C#,因此您可能需要考虑使用 CodePlex 上的 DotRas 项目。它是围绕整个 RAS API 的基于 C# 的包装器。要从 DotRas 获取 PPP 信息,您需要:

using DotRas;

var conn = RasConnection.GetActiveConnections().Where(c => c.EntryName == "Your Entry").FirstOrDefault();
RasPppIp ipInfo = conn.GetProjectionInfo(RasProjectionType.IP);

从这里您可以访问 ipInfo.IPAddress 属性以获取您想要的信息。

这是 DotRas 的链接:https://github.com/winnster/DotRas

希望对您有所帮助!

关于c# - 在 RasDial 之后获取 IP 地址/接口(interface)号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10919038/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com