2010-07-19 135 views
3

我需要从C#中调用一个Response.Redirect方法,但我需要这样做,它会忽略此调用的Windows上的主机文件?忽略hosts文件?

例如,如果在主机上,我有:

127.0.0.1 google.com

,我叫的Response.Redirect( “google.com”),我需要它忽略主机为这一个电话,实际上去google.com而不是localhost。我怎么能这样做?

我知道我可以在谷歌的IP地址上调用Response.Redirect,但有没有更好的方法?

+0

“我知道我可以在谷歌的IP地址上调用Response.Redirect” - 你将如何知道该IP地址是什么?在主机中具有该条目的系统上,它总是会告诉你127.0.0.1。 – AakashM 2010-07-19 12:12:01

+0

@AakashM:好吧,你*可以*打开一个套接字,自己对DNS服务器进行一次'A'查询(如果你不打扰系统设置,试试谷歌的8.8.8.8),解析返回的数据,瞧吧IP地址。换句话说,绕过操作系统的DNS解析器并自己动手。正如你所看到的,没有涉及'hosts'文件;重塑车轮OTOH,这可能有点问题。 – Piskvor 2010-07-19 12:15:45

+0

@Piskvor哇是的,那可以工作。但是,如果我看到一个应用程序成功地定位谷歌,而我有我的主机文件中的条目,我会...... *惊讶*,至少可以说:) – AakashM 2010-07-19 12:26:06

回答

2

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

+0

或者注释掉违规行。无论如何,除了操作系统的解析器之外,一些程序(例如网页浏览器)还保留着自己的DNS缓存,所以对“主机”的更改不能保证立即“采取”。 – Piskvor 2010-07-19 12:26:08

3

不,可能不是:DNS查找交给您的操作系统,它检查... hosts文件。

IFF可以

  • 查找IP地址,而不OS的解析器
  • 目标服务器接受IP地址,而不是主机名(有些Web服务器会拒绝为http://10.15.6.4/some/path(谷歌搜索接受的IP主机名和作品,顺便说一句)),

那么它可能会工作。

0

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