Как быть уверенным, что HTTP-запрос находится локален при использовании httplistener
-
25-09-2019 - |
Вопрос
я использую 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.