Python 动态查找 firefox 在打开 url 时侦听的端口的脚本?
Python script to dynamically find the port to which firefox listens on opening a url?
有什么方法可以找到 firefox url 在我们打开 url 时监听的端口。
平台 - ubuntu 或任何其他 linux 发行版
实际上,不,有几个原因。
首先,多重连接:当你打开,比如说,http://www.example.com/
,99.9% 的时候,第一页会有指向其他页面的 HREF,通常不止一个。 Firefox 通常会打开多个附加连接以同时拉下这些不同的页面。所以没有 "a port" 而是多个端口。
其次,根本没有简单的方法来找出 firefox 使用的端口。每次 firefox 打开连接时,它只是创建一个套接字并连接。内核为该套接字动态分配一个未使用的端口。 Firefox 甚至可能不知道端口号本身(如果需要,它可以获取该信息,但我不明白为什么要这样做)。结果 是 可通过 lsof(8) 导出,但这不会实时提供给您。 IE。对于大多数 URL,当您 运行 lsof 并解码信息时,它已经过时(连接将关闭)。
端口也可以(可能)通过 ptrace(2)ing firefox(或让 strace(1) 这样做)获得。但是这样做可能会极大地影响 firefox 的性能。解码输出会非常复杂。
有什么方法可以找到 firefox url 在我们打开 url 时监听的端口。 平台 - ubuntu 或任何其他 linux 发行版
实际上,不,有几个原因。
首先,多重连接:当你打开,比如说,http://www.example.com/
,99.9% 的时候,第一页会有指向其他页面的 HREF,通常不止一个。 Firefox 通常会打开多个附加连接以同时拉下这些不同的页面。所以没有 "a port" 而是多个端口。
其次,根本没有简单的方法来找出 firefox 使用的端口。每次 firefox 打开连接时,它只是创建一个套接字并连接。内核为该套接字动态分配一个未使用的端口。 Firefox 甚至可能不知道端口号本身(如果需要,它可以获取该信息,但我不明白为什么要这样做)。结果 是 可通过 lsof(8) 导出,但这不会实时提供给您。 IE。对于大多数 URL,当您 运行 lsof 并解码信息时,它已经过时(连接将关闭)。
端口也可以(可能)通过 ptrace(2)ing firefox(或让 strace(1) 这样做)获得。但是这样做可能会极大地影响 firefox 的性能。解码输出会非常复杂。