我正在尝试完成一些特定的测试要求。
现在的要求之一是将一些不存在的 url 重定向到特定的 ip,这就是 dns 正在做的事情。我认为 Firefox 使用内部 dns 缓存。但我找不到可以用来更改此类 dns 缓存的合适服务。另一方面,我不知道 Firefox 是否支持某种服务来自定义 dns 过程,我的意思是提供自定义结果而不是真正从 DNS 服务器获取。
由于我需要启动许多 Firefox 进程来同时完成工作,所以我不能简单地通过更改系统主机文件来做到这一点,因为它会影响其他进程。
有什么想法吗?
最佳答案
不,在 Firefox 中无法修改 DNS 响应,DNS 服务仅允许触发 DNS 请求。您可以做的是识别NS_ERROR_UNKNOWN_HOST
响应并以某种方式将其重定向到您的服务器。虽然识别并不是特别困难,但重定向却很复杂。你可以add a progress listener并在 onStateChange
方法中检查请求是否完成(if (aFlag & STATE_STOP)
)。参数aStatus
为您提供请求的状态,您将查找状态Components.results.NS_ERROR_UNKNOWN_HOST
。对于顶级请求(aFlag & STATE_WINDOW
),您可以更改窗口位置以向不同的服务器发出请求。对于其他请求 - 不知道如何“重定向”那里。
关于javascript - 是否可以在 Firefox 中添加和修改 dns 缓存条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7789259/