2015-09-21 3 views
0
{ host: '127.0.0.1:8080', 
    connection: 'keep-alive', 
    'cache-control': 'max-age=0', 
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/44.0.2403.89 Chrome/44.0.2403.89 Safari/537.36', 
    accept: '*/*', 
    referer: 'http://127.0.0.1:8080/', 
    'accept-encoding': 'gzip, deflate, sdch', 
    'accept-language': 'en-US,en;q=0.8', 
    cookie: 'io=bP2eXrqS3SkWYY4cAAAC11' } 

Я использую koa.io от npm, чтобы попытаться получить IP-адрес соединения клиента. когда я пытаюсь выполнить следующий код, приведенное выше напечатано в консоли. Я не могу получить IP-адрес клиента.заголовок не раскрывает ip-адрес?

app.io.use(function* userLeft(next) { 
    // on connect 
    console.log(this.headers); 
}); 

В настоящее время я нахожусь на локальном хосте. Я ожидаю, что IP-адрес клиента будет 127.0.0.1?

ответ

0

Пробег: this.request.ip. Он должен работать ...

после тестирования я понял две вещи.

  1. За прокси-сервером убедитесь, что прокси-сервер перенаправляет IP-адреса клиентов с помощью заголовка x-forwarded-for.
  2. в теории 1. должно быть достаточно для this.request.ip, чтобы вернуть клиент ip, но это не так. Но после настройки моего прокси, this.request.header["x-forwarded-for"] возвращает IP клиента

тест с помощью этого простого сервера:

var koa = require('koa'); 
var app = koa(); 

app.use(function *(){ 
this.body = this.request.ip; 
}); 

app.listen(3000); 
+0

Здравствуйте попробовал: 'console.log (this.request.ip)', возвращает неопределенное значение:/ –

+0

Вы заходите за прокси? Я использую nginx здесь, и я тоже не получил cleint ip. Я должен был сделать две вещи, чтобы понять это правильно. На моих серверах nginx config мне пришлось добавить 'proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;', а затем, в отличие от документации «x-forwarded-for» ist не поддерживается, поэтому мне пришлось «this.request.header [ х-пересылаются-за "]'. я буду обновлять ответ соответственно ... –

+0

Здравствуйте! Im в настоящее время только на localhost со всем. Возможно, это проблема? –

 Смежные вопросы

  • Нет связанных вопросов^_^