Как сервис может узнать звонящего? - PullRequest
3 голосов
/ 22 сентября 2010

У меня есть сервис WCF.Как я могу узнать, поступил ли звонок на мой сервис с локального компьютера или с компьютера из сети?

Спасибо, Adrya

Ответы [ 2 ]

4 голосов
/ 22 сентября 2010

Вы можете проверить IP звонящего. Если это с локальной машины должно быть "127.0.0.1". Вы можете получить IP вызывающего абонента (удаленный адрес) из объекта OperationContext. Больше информации здесь: http://www.danrigsby.com/blog/index.php/2008/05/21/get-the-clients-address-in-wcf/

1 голос
/ 22 сентября 2010

Я бы составил список при запуске ВСЕХ известных IP-адресов на локальном компьютере, используя что-то вроде ....

 NetworkInterface[] nis = NetworkInterface.GetAllNetworkInterfaces();
 List<string> addressList = new List<string>();
 foreach (NetworkInterface ni in nis)
 {
      IPInterfaceProperties iip = ni.GetIPProperties();
      UnicastIPAddressInformationCollection unis = iip.UnicastAddresses;
      foreach (UnicastIPAddressInformation uni in unis)
      {
          string address = uni.Address.ToString();
          addressList.Add(address);
      }
 }

и затем проверьте addressList, чтобы увидеть, содержит ли он «удаленный» IP-адрес. Это должно охватывать любой запрос с локального компьютера с IP-адди, отличным от 127.0.0.1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...