簡體   English   中英

如何獲取WCF遠程端點的IP地址?

[英]How to get the IP address of a WCF remote endpoint?

有沒有辦法獲得WCF連接的遠程IP地址?

我想它沒有內置到WCF框架中的原因是WCF可以使用非TCP / IP綁定,因此IP地址並不總是有意義的。

但是,這些信息對於所有廣泛使用的綁定都是有意義的(據我所知:BasicHttp,DualHttp,WSHttp和NetTcp)。

IP地址可能是使用反射訪問的,但我寧願找到一種記錄的方法來獲取它而不是入侵框架類。

我已經在Google上搜索了這個問題,似乎有很多人在沒有找到合適的解決方案的情況下遇到它(通常的答案是依賴於郵件頭 ,但這意味着信任客戶端提供其真實的IP地址,如果您出於安全原因要記錄IP地址,則不能選擇此選項)

顯然它已經通過RemoteEndpointMessageProperty添加到3.5中; 看到這里

OperationContext context = OperationContext.Current;
MessageProperties properties = context.IncomingMessageProperties;
RemoteEndpointMessageProperty endpoint = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
string address = endpoint.Address;

如果您在服務端並且想要獲取客戶端IP,則必須檢查OperationContext的消息屬性。 看看這里或H ERE例如

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM