65.9K
CodeProject 正在变化。 阅读更多。
Home

主机切换器

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.67/5 (5投票s)

2011年1月19日

CPOL

1分钟阅读

viewsIcon

32958

downloadIcon

860

快速轻松地在 hosts 文件中切换服务器。

HostSwitcher.png

引言

主机切换器解析 hosts 文件,显示可用选项,并允许您通过托盘设置主机。这在我们需要将 WCF、Web 服务等指向单个 DNS 名称时非常有用,但我们可以测试不同的环境。

Using the Code

重要提示:在运行该实用程序之前,请授予您的用户对 hosts 文件(位于 %systemroot%\System32\drivers\etc\)的完全控制访问权限。

运行应用程序时,它将解析 hosts 文件并在托盘中构建一个包含选项的菜单。以下是 hosts 文件的示例

# DIT - DITSERVER01.domain.com
#10.65.116.200    site.domain.com

# SIT - SITSERVER01.domain.com
10.59.169.44    site.domain.com

# Prod - PRODSERVER01.domain.com
#10.59.71.132     site.domain.com

# Prod - PRODSERVER02.domain.com
#10.59.71.133     site.domain.com

# Prod - PRODSERVER03.domain.com
#10.59.61.169     site.domain.com

# Prod - PRODSERVER04.domain.com
#10.59.61.220     site.domain.com

在此示例中,当用户在托盘中选择“DIT - DITSERVER01.domain.com”选项时,应用程序将注释掉 SIT 条目并取消注释 DIT 条目。“[无主机]”选项将注释掉所有条目。“查看 Hosts 文件”选项将在记事本中打开 hosts 文件进行编辑。如果 hosts 文件在外部更改,应用程序将自动重建菜单。

如果右键单击托盘中的服务器选项,它将复制服务器名称。退出应用程序时,它会询问用户是否要保留当前主机配置或注释掉所有条目。

代码很简单,最重要的两个方法是 ParseHostsFile(),它将检索 hosts 文件中的条目并将其呈现给用户,以及 UpdateHosts(),它将注释掉上一个条目并取消注释所选条目。

关注点

代码中没有什么复杂的,我只是使用了 FileSystemWatcher 来获取 hosts 文件的任何外部更改,并自动更新应用程序的选项。

历史

  • 初始版本 1.0。
© . All rights reserved.