Найти IP/ имя клиента, подключенного к сервису WCF?

Привет,

У меня есть служба WCF, размещенная в IIS7, которая использует WAS для связи по TCP. На стороне службы я реализовал IParameterInspector для регистрации вызываемых операций службы, но мне также нужен IP-адрес / имя клиента.

Я попробовал это:

OperationContext.Current.IncomingMessageProperties[RemoteEndpointMessageProperty.Name].Address

Но что всегда будет возвращать "::1"? Если я использую:

Dns.GetHostEntry(messageProperty.Address).HostName.Split('.').LastOrDefault()

Имя всегда будет локальным, и даже если клиент находится на другом компьютере, то служба?

С уважением

Изменить 1: IP невозможно получить, если я правильно прочитал, поэтому возникает вопрос, есть ли другой способ указать клиента, может быть, какой-то GUID или это только идентификатор сеанса, который я должен использовать?

1 ответ

Вы можете получить адрес IPv6 (как у вас здесь). ::1 IPv6 эквивалентен 127.0.0.1 на IPv4.

Кроме того, не все IP-адреса имеют имя хоста, связанное с ними, а некоторые могут не иметь периодов (например, если вы получаете "localhost" или другое имя локальной локальной машины)

Другие вопросы по тегам