我正在使用Chrome扩展程序“ Peername”访问这些域名,例如“ nx.bit”
Peername Chrome扩展程序:https://chrome.google.com/webstore/detail/peername/kkdihlopcnkjinfjhbeopjfmnfpcoaop
他们的源代码是少于100行的脚本:https://dpaste.de/YMew
看看他们的代码,他们没有直接查询DNS服务器(chrome扩展名只能使用html / css / javascript);他们查询返回API域名的Web API。
以下是对“ nx.bit”的查询示例:https://peername.org/api/?name=nx&namespace=bit
返回的IP为178.248.244.15。这似乎很好,但在浏览器中导航到178.248.244.15时,它会将您重定向到https://sv05.net-housting.de/user/index.php,这与您在地址栏中键入http://nx.bit时所转到的页面不同浏览器。
进一步检查代码,我意识到它使用了chrome.proxy api(文档:https://developer.chrome.com/extensions/proxy),并且正在使用代理连接到与自定义DNS服务器上与域名相关联的网络服务器。
这是一段代码(省略了一些定义的变量):
var config = {
mode: "pac_script",
pacScript: {
data: "function FindProxyForURL(u,h){if(dnsDomainIs(h,'" + domain + "'))return'" + access + " " + ip + ":" + port + "';return'DIRECT'}"
}
};
chrome.proxy.settings.set({
value: config,
scope: 'regular'
}, function() {
console.log('Got IP ' + ip + ' from SERVER. Proxy config is set.');
});
据我了解,似乎每个.bit域都在使用代理。 chrome.proxy使用PAC或代理自动配置。 “代理自动配置(PAC)文件是一种JavaScript函数,它确定Web浏览器请求(HTTP,HTTPS和FTP)是直接转到目的地还是转发到Web代理服务器”-https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_(PAC)_file >
我尝试过的每个.bit域都有一个IP地址,该IP地址重定向到一个与.bit站点完全不同的站点。有人可以向我解释发生了什么事吗?
我也正在创建一个新的TLD,并希望使用它的人能够轻松地通过Chrome扩展程序连接到这些域。所有这些IP是否都必须将Web浏览器请求转发到代理服务器?这里发生了什么?预先感谢。