Как быть уверенным, что HTTP-запрос находится локален при использовании httplistener

StackOverflow https://stackoverflow.com/questions/2607439

Вопрос

я использую HttpListener. Отказ Тем не менее, я хочу обработать запросы, которые приходят локально, а не с другой машины / сервера.

Как бы я программно проверил, если входящий запрос наверняка является локальным? Мне нужно будет использовать некоторые из HttpListenerRequest Члены?

Это было полезно?

Решение

Проверить с RemoteEndPoint имущество Если удаленный адрес запроса равен 127.0.0.1.

Другие советы

То HttpListenerRequest имеет свойство IsLocal который также должен предоставить эту информацию. Тем не менее, это возвращается false на моем компьютере. Отражается в исходный код, кажется, что это потому, что IsLocal Свойство использует код:

    return this.LocalEndPoint.Address == this.RemoteEndPoint.Address;

Когда возможно, он должен использовать код в (недоступном) InternalIsLocal Собственность, которое есть:

    return this.LocalEndPoint.Address.Equals(this.RemoteEndPoint.Address);

(Это выражение возвращается true для моей ситуации). Использование этого подхода может быть предпочтительным, так что ваш код не зависит от адреса IPv4, поскольку переход сделан для IPv6.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top