如何使用 nbtstat -A IP 獲得內網MAC和主機名
本帖最後由 gary8349 於 2021-2-16 13:11 編輯我使用下方代碼以及幾種類似的(基於nbtstat -A)
都無法獲得資料...
請問先進要如何寫才能正確?
請高手指點指點,感恩
主要以IP取得以下資訊:主機名稱+MAC+IPFunc _GetMacAddress($_phisycaladdress)
Local $chk_1 = StringReplace($_phisycaladdress, '.', '') / 1
If @extended <> 3 Or $chk_1 < 1 Then Return ''
Local $chk_2 = StringSplit($_phisycaladdress, '.', 1)
For $idx_chk = 1 To $chk_2
If ($chk_2[$idx_chk] / 1) < 0 or ($chk_2[$idx_chk] / 1) > 255 Then Return ''
Next
Local $_buf = ''
Local $_pid = Run('nbtstat -A ' & $_phisycaladdress, '', @SW_HIDE, 2)
Do
$_buf &= StdoutRead($_pid)
Until @error
If StringReplace($_buf, 'MAC Address = ', '') <> $_buf Then
$chk_3 = StringSplit($_buf, 'MAC Address = ', 1)
Return StringReplace(StringReplace($chk_3, @CR, ''), @LF, '')
EndIf
Return ''
EndFunc ;==>_GetMacAddress
MsgBox(0, '', _GetMacAddress('XXX.XXX.XX.XXX'))CMD的結果(nbstat -A 192.168.0.1)
NetBIOS 遠端電腦名稱表格
名稱 類型 狀態
---------------------------------------------
TEST01_SERVER_2<00>唯一 已登錄
WORKGROUP <00>群組 已登錄
TEST01_SERVER_2<20>唯一 已登錄
MAC 位址 = 00-00-00-00-D4-00
單純使用 _RunDos ( 'nbtstat -A 192.168.0.1 >>123.txt' )
所產生的文字檔內容為空
會不會是因為指令還沒跑完AU3判斷已經完成...
至少要得到遠端電腦名稱表格才能處理後續...
但現在卡關在這><
_RunDos ( 'nbtstat -A 192.168.0.1 >>123.txt' )
少一個t?
本帖最後由 maodou 於 2016-11-23 23:05 編輯
參考一下別人寫的:
GetMac with StdOutRead and nbtstat <-- 參考第二段code
resolve remote computername
依據Calling a 32-bit System command from a script in x64 Windows
#include <process.au3>
if @OSArch="X64" Then
_RunDos (@WindowsDir&"\sysnative\nbtstat -A 192.168.0.1 >> 123.txt" )
elseif @OSArch="X86" Then
_RunDos (@WindowsDir&"\nbtstat -A 192.168.0.1 >> 123.txt" )
EndIf
頁:
[1]