(VB.NET2003)怎样根据IP来获取工作组的名字?

来源:百度知道 编辑:UC知道 时间:2024/05/27 16:49:16
怎样根据IP来获取工作组的名字?
Dim strComputer As String = "."
Dim objWMIService As Object = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Dim colSettings As Object = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
Dim objComputer As Object
Dim workgroup As String
For Each objComputer In colSettings
workgroup = objComputer.Domain()
Next
这种方式只能获取本机工作组名称!
这种调用“nbtstat”方法不怎么好,速度太慢,在vista下也不适合

直接给代码吧!
函数写的很清楚 相信你可的懂!

Function GetGroupName(ByVal ip As String) As String
Dim str1 As String = String.Empty
Dim info1 As ProcessStartInfo = New ProcessStartInfo
Dim process1 As Process = New Process
info1.FileName = "nbtstat" '程序名
info1.RedirectStandardInput = False
info1.RedirectStandardOutput = True
info1.Arguments = " -a " & ip '参数
info1.UseShellExecute = False
info1.CreateNoWindow = True
info1.WindowStyle = ProcessWindowStyle.Maximized
process1 = Process.Start(info1)
Dim num1 As Integer = -1

While (num1 <= 0)
num1 = InStr(str1, "<00> GROUP")
If (num1 > 0) Then
Exit While
End If
str1 = process1.StandardOutput.ReadLine() '