Как получить IP-адрес клиента из запроса к веб-сервису - PullRequest
2 голосов
/ 08 августа 2011

У меня есть веб-сервис, размещенный в моем IIS ... Мне нужно узнать IP-адрес клиента, когда клиент использует мой сервис напрямую

, как http://MyIpAddress/MyApplication/MyWebServiceClass.asmx

и возможно личитать файл с клиентской машины?Если да, то как я могу это сделать?

Ответы [ 3 ]

4 голосов
/ 08 августа 2011

В вашем распоряжении должен быть простой старый HTTP-контекст в ASMX:

        HttpContext.Current.Request.UserHostAddress

Также еще раз: «Возможно ли прочитать файл с клиентского компьютера» - все зависит от вашей реализации. Если вы создаете веб-сервис для своей интрасети и работаете в небольшой бизнес-среде, вы, вероятно, можете дать правильное планирование со своим сетевым парнем (не отстаивая это как хорошую идею, просто возможность).

Для дальнейшего уточнения, если вы находитесь в среде малого офиса и получаете запрос от 192.168.1.55 и знаете, что на каждом клиентском компьютере в вашей сети есть файл lastLoginData.txt на диске C, и у вас есть соответствующий конфигурации для UNC-доступа к клиенту на машине, на которой размещен сервис, возможно получение "\\" + ip + "\ c $ \ lastLoginData.txt". Вы могли бы создать потенциально ужасную проблему безопасности для себя, но это было бы возможно.

В большинстве случаев, однако, нет, у вас не будет доступа к клиентскому диску из веб-службы - скорее всего, сначала потребуется какая-то загрузка.

4 голосов
/ 08 августа 2011

Попробуйте позвонить

Request.UserHostAddress

Свойство HttpRequest.UserHostAddress

Что касается доступа к файлу с клиента, это должно быть достигнуто путем первой загрузки файла на сервер.

Проверьте следующее при загрузке файлов в веб-сервис:

Загрузка файла ASMX

Создание простого Web-сервиса для передачи файлов с помощью .NET

0 голосов
/ 18 ноября 2015
        String ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

        if (string.IsNullOrEmpty(ip))
        {
            ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
        }
        else
        {
            ip=ip.Split(',')[0];
        }

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