Home > All Tags > Host

[原创]VB.net 写入修改Host

评分 0.00, 满分 5星 0 票 No comments
    '提前调用
    Imports System.IO
    Imports System.ServiceProcess
     '窗体内 放置 一个RichTextBox 命名为 rtbHost
		
    Private Function Write_Host(ByVal strIP as string,ByVal strHost as string) As String
        Dim strReturn As String = "OK"
        Try
            '读数据
            Dim operachina As String
            Dim strFileName As String

            strFileName = Environ$("SystemRoot") & "\System32\drivers\etc\hosts"

            Dim SR As New StreamReader(strFileName)
            rtbHost.Text = SR.ReadToEnd

            SR.Close()

            If rtbHost.Find(strHost) < 0 Then

                operachina = strIP + "   " + strHost + vbCrLf

                '写数据
                rtbHost.AppendText(vbCrLf + operachina)

                Dim SW As New StreamWriter(strFileName)
                SW.Write(rtbHost.Text)
                SW.Close()

                '重启DNS服务
                Dim service As New ServiceController

                service.ServiceName = "Dnscache"

                If service.Status = ServiceControllerStatus.Running Then

                    service.Stop()
                    service.WaitForStatus(ServiceProcess.ServiceControllerStatus.Stopped)
                    service.Start()
                    service.WaitForStatus(ServiceProcess.ServiceControllerStatus.Running)
                ElseIf service.Status = ServiceControllerStatus.Stopped Then
                    service.Start()
                    service.WaitForStatus(ServiceProcess.ServiceControllerStatus.Running)
                End If

            End If

        Catch ex As Exception
            strReturn = ex.Message
            Throw
        End Try
        Return strReturn
    End Function
    
    '使用方法
     If Write_Host("192.168.1.100","test.wuxing.name") <> "OK" Then MsgBox("DNS解析错误,可能无法访问。")
     System.Diagnostics.Process.Start("IEXPLORE.EXE", "http://test.wuxing.name/")