在尝试设置 OpenDNS 并且未能使网站过滤真正起作用时,我意识到我的 ISP 正在对所有 HTTP 请求做一些邪恶的事情。长话短说,如果有Host:
标题,我使用什么 IP 地址都没有关系,我得到的网站取决于Host:
标题而不是其他任何东西。
即使我在请求中指定 HTTP/1.0,它似乎也会自动使用 HTTP/1.1。
例子:
google.com
与Host: yahoo.com
$ echo -e "HEAD / HTTP/1.0\r\nHost: yahoo.com\r\n\r\n" | nc google.com 80
HTTP/1.1 301 Moved Permanently
Date: Mon, 02 Jan 2012 10:50:13 GMT
Location: http://www.yahoo.com/
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
Cache-Control: private
Age: 0
Server: YTS/1.20.0
Connection: close
$
Run Code Online (Sandbox Code Playgroud)
Host: yahoo.com
$ echo -e "HEAD / HTTP/1.0\r\nHost: yahoo.com\r\n\r\n" | nc 1.0.0.0 80
HTTP/1.1 301 Moved Permanently …
Run Code Online (Sandbox Code Playgroud) 背景:
现在,问题是 NBNS/WINS 不适用于 IPv6,因此没有名称解析。我可以 ping 文字 IPv6 地址(在来回读取/键入循环和大量眯眼以找到单个数字错误之后......),但仅此而已。我不能做任何名称解析。与 IPv4 不同,文字 IPv6 地址不实用。