'The DotNet world is so beautiful.
'Enjoy the code below
Public Function ValueSepR(ByVal RawString As String, ByVal SepChar As String) As String
If InStr(1, RawString, SepChar) <> 0 Then
ValueSepR = Microsoft.VisualBasic.Right(RawString, Len(RawString) - InStr(1, RawString, SepChar))
Else
ValueSepR = RawString
End If
End Function
Public Function GetMac(ByVal IP As String) As String
Try
Dim dirResults As String
Dim psi As ProcessStartInfo = New ProcessStartInfo()
Dim proc As New Process()
psi.FileName = "nbtstat"
psi.RedirectStandardInput = False
psi.RedirectStandardOutput = True
psi.Arguments = "-A " & IP
psi.UseShellExecute = False
proc = Process.Start(psi)
Dim x As Integer = -1
Do Until x > -1
If dirResults <> Nothing Then
x = dirResults.Trim.ToLower.IndexOf("mac address", 0)
If x > -1 Then
Exit Do
End If
End If
dirResults = proc.StandardOutput.ReadLine
Loop
proc.WaitForExit()
GetMac = ValueSepR(dirResults.Trim, "=").Trim
Catch err As Exception
MsgBox(err.Message & err.StackTrace)
End Try
End Function