Разработка расширений Firefox: Как записать IP-адрес каждого запроса? - PullRequest
0 голосов
/ 06 марта 2012

У меня возникли проблемы с поиском, как получить IP-адрес для каждого запроса (изображения, ajax, инициал и т. Д.) Веб-страницы с расширением FF. Так же, как это сделано в Firebug.

Что я пробовал:

nsIWebProgressListener просто дает мне имя хоста для одного запроса. С DNS-поиска я могу получить IP-адрес от имени хоста.

ServerSocketListener выглядит так, как будто я должен сам открыть сокет сервера, а ServerSocketListener просто прослушивает этот сокет.

Это вообще возможно?

Если да, какую функцию мне использовать?

1 Ответ

1 голос
/ 06 марта 2012

Вы должны быть , используя для этого слушателей прогресса . В частности, важным методом для получения всех запросов является onStateChange:

const Ci = Components.interfaces;

...

onStateChange: function(webProgress, request, flag, status)  
{  
  if ((flag & Ci.nsIWebProgressListener.STATE_START) &&
      (flag & Ci.nsIWebProgressListener.STATE_IS_REQUEST) &&
      request instanceof Ci.nsIChannel)
  {
    // Request started
    var host = request.URI.host;
    ...
  }
},

См. Также документацию по nsIChannel.

Другой вариант будет с использованием http-on-modify-request уведомления .

...