Firefox扩展开发:如何记录每个请求的IP地址?

时间:2012-03-06 15:10:16

标签: firefox firefox-addon request ip

我发现有一些问题,如何检索FF扩展中网页的每个请求(图像,ajax,初始等)的IP地址。 就像它在Firebug中完成一样。

我尝试了什么:

nsIWebProgressListener只是为我提供了一个请求的主机名。使用dns查找,我可以从主机名获取ip。

ServerSocketListener看起来我必须自己打开一个Server Socket,而ServerSocketListener只是在监听这个Socket。

是否可能?

如果是,我应该使用哪种功能?

1 个答案:

答案 0 :(得分:1)

你应该using progress listeners。特别是,获取所有请求的重要方法是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;
    ...
  }
},

另见documentation on nsIChannel

另一个选项是using http-on-modify-request notification