注:www.v3d5.com威山滴屋已经授权明晨网络全权转载本文,原文出处http://www.v3d5.com/blog/post/1.html
首先严重感谢vbgood和powerbasic的同志们....文末提供下载
最近改版某个信息港门户,在局域网上搭建服务器调试的。域名xxx.com已经指向互联网上的空间了,不能随意更改而影响用户体验,于是想到修改本 机DNS缓存,使得xxx.com指向局域网的web服务器。我还好说,找到路径,用记事本打开就改,可美工同志们不懂这块。建快捷方式?用专门工具?算 了,还是花个10来分钟写个小工具吧。不用保存,即时生效;不开刀,不吃药,随治随走。按下图这么一设置,本机访问www.baidu.com就会被解析到192.168.1.125这个IP上了。
Custom DNS

代码如下
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Const MAX_LEN = 255 '字符串最大长度
Dim sTmp As String * MAX_LEN '存放结果的固定长度的字符串
Dim nLength As Long '字符串的实际长度
Dim System32dir As String '保存System32目录
Private Sub Form_Load() '窗体启动,再次严重感谢vbgood和powerbasic的同志们....
nLength = GetSystemDirectory(sTmp, MAX_LEN)
System32dir = Left(sTmp, nLength)
Text_IP = ShowDNS
End Sub
Sub ModifyDNS(ByVal sDNS As String)
Dim i As Integer
i = FreeFile()
Open System32dir & "\drivers\etc\hosts" For Output As #i
Print #i, , ""
Close #i
Open System32dir & "\drivers\etc\hosts" For Binary As #i
Put #i, , sDNS
Close #i
End Sub
Function ShowDNS() As String
Dim FileText As String
Dim i As Integer
i = FreeFile
Open System32dir & "\drivers\etc\hosts" For Binary As #i
FileText = Space$(LOF(i))
Get #i, , FileText
Close #i
ShowDNS = FileText
End Function
Private Sub Form_Resize()
Text_IP.Width = Me.Width
Text_IP.Height = Me.Height
End Sub
Private Sub Text_IP_Change()
ModifyDNS Text_IP.Text
Text_IP = ShowDNS
End Sub