Получить исходный трафик происхождения определенной ссылки на моем веб-сайте [дубликат]

Используйте Task.WhenAll, а затем ждите результатов:

var tCat = FeedCat();
var tHouse = SellHouse();
var tCar = BuyCar();
await Task.WhenAll(tCat, tHouse, tCar);
Cat cat = await tCat;
House house = await tHouse;
Tesla car = await tCar; 
//as they have all definitely finished, you could also use Task.Value.
42
задан Nicola Peluchetti 28 August 2013 в 22:41
поделиться

2 ответа

Вы должны получить его из заголовка HOST .

var host = req.get('host');

Он не является обязательным с HTTP 1.0, но должен быть равен 1.1. И приложение всегда может навязывать свое собственное требование.


Если это для поддержки запросов перекрестного происхождения , вместо этого вы должны использовать заголовок Origin.

var origin = req.get('origin');

Обратите внимание, что некоторые запросы с кросс-началом требуют проверки через запрос «preflight» :

req.options('/route', function (req, res) {
    var origin = req.get('origin');
    // ...
});

Если вы ищите IP-адрес клиента, вы можете получить это с помощью:

var userIP = req.socket.remoteAddress;

Обратите внимание, что если ваш сервер находится за прокси-сервером, это, скорее всего, даст вам IP-адрес прокси. Если вы можете получить IP-адрес пользователя, зависит от того, какая информация прокси-сервер передает. Но, как правило, он также находится в заголовках.

74
ответ дан Community 20 August 2018 в 10:19
поделиться
  • 1
    Но разве это не дает мне хозяина api? Это может быть вызвано тем, что я делаю это локально, и у меня api.time.ly настроен на разрешение 127.0.0.1, и вызов, который я делаю, из localhost, но если я использую это, хост - это api.time.ly & quot; Мне нужно знать домен, который звонит мне. я проверю это на живом сайте. – Nicola Peluchetti 28 August 2013 в 22:54
  • 2
    @NicolaPeluchetti Я думаю, я не понимаю, что вы подразумеваете под & quot; доменом, который вызывает меня . & Quot; HTTP-клиенты обычно не предоставляют свое собственное имя хоста в запросе. Это для CORS ? – Jonathan Lonowski 28 August 2013 в 23:07
  • 3
    У меня есть центральный api, который находится на api.time.ly. Этот api вызывается различными клиентскими сайтами, которые устанавливают наш плагин wordpress. Таким образом, мы могли бы church1.com и sauna1.com совершать звонки на наш api. В API я смогу получить, если вызов был сделан из church1.com или из sauna1.com ? я видел заголовок 'user-agent': 'WordPress/3.6; http://localhost/wordpress_clean', должен ли я разбирать это? – Nicola Peluchetti 28 August 2013 в 23:31
  • 4
    Если Domain не передан, это не проблема, я могу добавить его в API-интерфейс, очевидно. – Nicola Peluchetti 28 August 2013 в 23:38
  • 5
    @NicolaPeluchetti Вы можете попробовать расщепление и разбор пользовательского агента или потребовать его в качестве данных в запросе. Но я бы сказал, что что-то вроде OAuth лучше подходит для идентификации клиентов. – Jonathan Lonowski 28 August 2013 в 23:45

Вместо:

var host = req.get('host');
var origin = req.get('origin');

вы также можете использовать:

var host = req.headers.host;
var origin = req.headers.origin;
10
ответ дан Michiel 20 August 2018 в 10:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: