akr*_*roy 3 .net c# c++ network-programming ras
在使用.NET的C++中,我试图获取我刚刚与RasDial连接的RASCONN的IP地址或接口名称(我有HRASCONN指针).我发现MSDN API令人困惑,经过几个小时的搜索我找不到合适的电话(但似乎它们必须存在).
如果有更好的方法可以做到这一点,那么这里的目标是拥有一些独特的标识符,以便当我稍后在管理C#中调用NetworkInterface.GetAllNetworkInterfaces()时,我可以选择正确的连接.
您需要查看RasGetProjectionInfo函数并使用之前检索到的HRASCONN指针.RASP_PppIp应该是传入的rasprojection值,以获取包含您的IP地址的RASPPPIP结构.我会发布一些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);
Run Code Online (Sandbox Code Playgroud)
从这里,您可以访问ipInfo.IPAddress属性以获取所需的信息.
这是DotRas的链接:http://dotras.codeplex.com
希望有所帮助!