2012-03-06 53 views
0

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

我的尝试:

nsIWebProgressListener只是给我一个要求的主机名。通过DNS查询,我可以从主机名获得IP。

ServerSocketListener看起来像我必须自己打开服务器套接字,ServerSocketListener只是侦听此套接字。

是否有可能?

如果是,我应该使用哪个函数?

+0

你是如何使用'nsIWebProgressListener',它只给你一个请求? – 2012-03-06 15:32:25

+0

我只使用onLocationChange,导致它是nsIWebProgressListener的唯一函数,它给了我主机名(nsIURI.host)。 – kev 2012-03-06 15:52:00

回答

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

+0

谢谢你的回答,但这对我不起作用。 – kev 2012-03-07 12:56:48

+0

@ user1252307:随意测试你的代码,找出究竟什么是行不通的;) – 2012-03-07 13:01:59

+0

我想写更多,但按回车没有按预期做一个换行符,但保存了评论:-(

这里是我的帖子的余下部分:

我登录的主机名到错误控制台
当我冲浪到Y * hoo.com例如我得到一个条目:l.yimg.com
萤火虫名单我约15!请求。
我也试着监视一个ajax请求:[http://www.w3schools.com/ajax/ajax_example.asp](http://www.w3schools.com/ajax/ajax_example。 asp)。
这也没有显示在我的错误控制台中。 – kev 2012-03-07 13:09:53