忽略hosts文件?

3
我需要从C#中调用Response.Redirect方法,但我需要以这样的方式进行操作,即在此调用中忽略Windows上的Hosts文件?
例如,如果在Hosts中有:
127.0.0.1 google.com
并且我调用Response.Redirect("google.com"),我需要它忽略此次调用的hosts,实际上去到google.com而不是localhost。我该怎么做?
我知道我可以调用google的IP地址上的Response.Redirect,但是否有更好的方法?

"我知道我可以在谷歌的IP地址上调用Response.Redirect方法,但是你要怎样找到这个IP地址呢?在拥有hosts条目的系统中,它总是会告诉你127.0.0.1。" - AakashM
@AakashM:嗯,你可以打开一个套接字,向DNS服务器自己发出“A”查询(如果您不想处理系统设置,请尝试使用Google的8.8.8.8),解析返回的数据,就会得到IP地址。换句话说,绕过操作系统的DNS解析器,自己解析。正如你所看到的,没有涉及到hosts文件;但是重新发明轮子可能会成为一个问题。 - Piskvor left the building
@Piskvor 哇,是的,好的,那会起作用。但如果我看到一个应用程序在我的 hosts 文件中有 Google 条目的情况下成功定位到 Google,我会感到...惊讶,至少可以这么说 :) - AakashM
@AakashM:没错,这样做会出人意料、令人怀疑和不切实际;尽管如此,从技术上讲,它仍然是可能的。 - Piskvor left the building
3个回答

3
不太可能:DNS查找交给操作系统处理,它会检查“hosts”文件。只有当你可以在不使用操作系统解析器的情况下查找IP地址,并且目标服务器接受IP地址而不是主机名时(某些Web服务器将拒绝提供http://10.15.6.4/some/path(顺便说一下,Google搜索接受IP主机名并且有效)),才可能运行。

2
唯一忽略hosts文件的方法是删除它。

或者将有问题的行注释掉。无论如何,一些程序(如Web浏览器)除了操作系统的解析器之外,还保留自己的DNS缓存,因此更改hosts不能保证立即生效。 - Piskvor left the building

1
如果您可以在不询问操作系统的情况下(例如通过第三方)知道主机的IP地址,则实际上忽略了主机文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接