Как убедиться, что http-запрос является локальным при использовании HttpListener - PullRequest
2 голосов
/ 09 апреля 2010

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

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

Ответы [ 2 ]

5 голосов
/ 31 октября 2012

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

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

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

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

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

1 голос
/ 09 апреля 2010

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

...