2010-10-15 49 views
1

说,我的机器上有2个或更多的活动网卡。我正在使用一个C#应用程序,我从中调用异步服务。 我希望能够确定调用此服务时我使用了哪个ipaddress。确定哪些IP地址已被用于在c#中打开一个url

例如,我的两个活动ip是192.168.10.5和192.168.5.7,服务ipaddress是192.168.7.12。

+0

可能重复[在WCF 3.0中获取客户端IP地址](http://stackoverflow.com/questions/93162/obtaining-client-ip-address-in-wcf-3-0) – Timores 2010-10-15 09:40:50

+0

这个问题略有不清楚 - 你是否试图从客户或服务中确定这些信息? – 2010-10-15 09:59:38

+0

从客户端确定它,所以我把它发送到服务器,所以服务器可以联系客户端使用这个地址 – Zee99 2010-10-15 10:47:45

回答

0

嗯略有返工。我不认为有一个管理的解决方案。 GetBestInterface和/或GetBestRoute似乎是在WIn32 API中开始的正确位置(可能是GetBestRoute,通过我的阅读)。

另外,由于互联网和动态路由这些奇妙的事情的变幻莫测,当你计算出答案时,它可能已经改变。

最好给服务提供一个IP地址列表,让它使用任何一个工作。

编辑

或者您可以使用WCF callbacks,使WCF做最困难的工作(我不是在WCF花了很多时间本身,不知道有多少工作,它会为你在这里)