Найти 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" или другое имя локальной локальной машины)