我读过有关RPC编程的大量Microsoft文档,仍然不知道如何从RPC服务器获得连接客户端的IP地址。
我确信在连接时有一种从服务器获取客户机IP地址的简单方法,但不知道如何这样做:/
感谢您的帮助,一个指向文档的简单指针将是很好的。
发布于 2015-05-15 17:25:23
不-没有记录在案的方法来实现这一点。Windows通过设计从其客户端抽象出网络传输(以及相关的元数据,如网络地址)。
如果你真的需要这样的东西,你可以把它烘焙到你的接口(例如,实现一个连接()方法,其中你的客户端提供它的IP地址,你可以存放在一个上下文句柄)。当然,这假设您可以信任客户端提供有效的IP地址.
发布于 2017-04-19 21:19:04
使用RpcBindingServerFromClient应该是可能的。引用RpcBindingServerFromClient文档
要查询客户端地址,应用程序首先调用RpcBindingServerFromClient函数以获得部分绑定的服务器绑定句柄。服务器绑定句柄可以通过调用RpcBindingToStringBinding来获得字符串绑定。然后,服务器可以调用RpcStringBindingParse从字符串绑定中提取客户端的网络地址。
更新16/05/2017:还有很可能返回客户端IP地址的无文档函数I_RpcServerInqRemoteConnAddress()。但我还没试过。
https://stackoverflow.com/questions/30257510
复制相似问题