|
densn
初级用户
积分 29
发帖 14
注册 2007-5-22
状态 离线
|
『楼 主』:
[原创]局域网内MAC扫描
NbtstatPacket = toByte("000000000001" &_
"00000000000020434b" &_
"4141414141414141" &_
"4141414141414141" &_
"4141414141414141" &_
"4141414141410000210001")
DIM WSTATE,ip,HOST,MAC,NSTATE
Set Winsock = Wscript.CreateObject("MSWinsock.Winsock","sck_")
Winsock.Protocol = 1
Set FSO = CreateObject("Scripting.FileSystemObject")
Set objFile = FSO.OpenTextFile(fso.GetBaseName(WScript.ScriptName) & ".txt", 2,True)
BeginTimer = Timer()
objFile.WriteLine "IPAddress" & vbTab & "Host" & vbTab & "MAC"
objFile.WriteLine String(39,"-")
For i = 1 To 254
NSTATE = True
HOST = "":MAC = ""
ip = "192.168.1." & i
CALL Nbtstat(ip)
If NSTATE Then
objFile.WriteLine ip & vbTab & HOST & vbTab & MAC
End If
Next
EndTimer = Timer()
TimeSpan_Send = EndTimer - BeginTimer
TimeSpan=CStr(Round(TimeSpan_Send, 4))
objFile.WriteLine String(39,"-")
objFile.WriteLine "用时:" & TimeSpan & " 秒"
Wscript.echo "用时:" & TimeSpan & " 秒"
Function Nbtstat(ip)
Winsock.RemoteHost = ip
Winsock.RemotePort = 137
Winsock.SendData NbtstatPacket
Dim WAIT
WSTATE = False
While WAIT < 2 AND Not WSTATE
Wscript.Sleep 15
WAIT = WAIT + 1
Wend
If WAIT=2 Then
NSTATE = False
'objFile.WriteLine Winsock.state & " - 超时退出!"
End If
End Function
Sub sck_DataArrival(ByVal bytesTotal)
On Error Resume Next
Winsock.GetData RevData
If Err.Number = 0 Then
toHex RevData
Else
'NSTATE = False
HOST = "Host not found."
End If
Err.Clear
WSTATE = True
Winsock.Close
End Sub
Function toByte(data)
set xml_dom = CreateObject("Microsoft.XMLDOM")
set l_node = xml_dom.createElement("byte")
l_node.dataType = "bin.hex"
l_node.Text = data
toByte = l_node.nodeTypedvalue
End Function
Function toHex(data)
set xml_dom = CreateObject("Microsoft.XMLDOM")
set l_node = xml_dom.createElement("byte")
l_node.dataType = "bin.hex"
l_node.nodeTypedvalue = data
StrHex = l_node.Text
B = Eval("&H" & Mid(StrHex,56*2+1,1*2))
HOST = Trim(Hex2Ascii(Mid(StrHex,57*2+1,15*2)))
[u]MAC = UCase(Mid(StrHex,57*2+1+(B*18*2),6*2))[/u]
End Function
Function Hex2Ascii(strHex)
dim i
for i = 1 To Len(strHex) Step 2
Hex2Ascii = Hex2Ascii & Chr(Eval("&H" & Mid(strHex, i, 2)))
Next
End Function VBS版MAC扫描器,需要安装MSWinsock...
附件中包含:
MSWINSCK(Setup).vbs---->MSWinsock安装
SCANMAC(Batch).vbs ---->扫描程序
扫描结果:
IPAddress Host MAC
---------------------------------------
192.168.1.1 Host not found.
192.168.1.2 PC-08 00E04C87C737
192.168.1.254 PC-01 00E04C87C106
---------------------------------------
用时:8.875 秒
附件内文件有误请自行修改一下:
MAC = UCase(Mid(StrHex,57*2+1+(6*18*2),6*2))
改为
MAC = UCase(Mid(StrHex,57*2+1+(B*18*2),6*2))
下载:
http://upload.cn-dos.net/img/216.rar
[ Last edited by HAT on 2010-6-4 at 10:04 ]
|
|
2008-4-2 22:03 |
|
|
dato
高级用户
积分 916
发帖 377
注册 2004-3-8
状态 离线
|
|
2008-4-3 09:36 |
|
|
dato
高级用户
积分 916
发帖 377
注册 2004-3-8
状态 离线
|
『第
3 楼』:
结果似乎不是很精确也不知道什么影响了
IPAddress Host MAC
---------------------------------------
192.168.1.8 fds 00E04C89679C
192.168.1.16 sfsaf 000000000000
192.168.1.20 YDXZ-22440CCF9B 000000000000
192.168.1.93 64195B64EF644E4 000000000000
192.168.1.101 BBS-EDC335B81EF 000000000000
192.168.1.145 fdsfds 000AE6889133
192.168.1.146 vcx 000000000000
192.168.1.187 BBS-091597F9D12 000000000000
192.168.1.252 wefds 000000000000
---------------------------------------
用时:10.5352 秒
|
http://dato.ys168.com
google search bot
http://dato.minidns.net/ |
|
2008-4-3 10:18 |
|
|
densn
初级用户
积分 29
发帖 14
注册 2007-5-22
状态 离线
|
『第
4 楼』:
Quote: | Originally posted by dato at 2008-4-3 10:18 AM:
结果似乎不是很精确也不知道什么影响了
IPAddress Host MAC
---------------------------------------
192.168.1.8 fds 00E04C89679C
192.168.1.16 sfsaf 000000000000
192.168.1.20 YD ... |
|
修改一下:
MAC = UCase(Mid(StrHex,57*2+1+(6*18*2),6*2))
改为
MAC = UCase(Mid(StrHex,57*2+1+(B*18*2),6*2))
再试一下。
|
|
2008-4-3 14:46 |
|
|
sunxh
新手上路
积分 3
发帖 5
注册 2009-7-7
状态 离线
|
|
2009-9-12 13:30 |
|
|
provem
初级用户
积分 92
发帖 82
注册 2007-11-13
状态 离线
|
『第
6 楼』:
大家可以试试用 nbtscan 获取,快捷又准备
nbtscan 论坛里有下载
arp -d>nul 2>nul&nbtscan 192.168.0.1/24>nul 2>nul&arp -a|find /v "00-00-00-00-00-00"|find /v ":"|find "-" >>%tmp%\online.txt
|
|
2009-9-13 10:46 |
|
|
ldr2zjj
初级用户
积分 167
发帖 95
注册 2007-5-6
状态 离线
|
『第
7 楼』:
怎么我的一个都扫不出来呢~~~我们这一栋楼都同一个局域网里啊
|
|
2009-9-19 05:14 |
|
|
ldr2zjj
初级用户
积分 167
发帖 95
注册 2007-5-6
状态 离线
|
『第
8 楼』:
发现问题了~~原来我位的IP是196.168.212.*
|
|
2009-9-19 05:17 |
|
|
antony521
新手上路
积分 14
发帖 14
注册 2010-3-29
状态 离线
|
『第
9 楼』:
求此贴附件,链接下载不了了!
谁有这个贴中的附件啊!请发给我一份antony521@sina.com
就是VBS版MAC扫描器,需要安装MSWinsock...
附件中包含:
MSWINSCK(Setup).vbs---->MSWinsock安装
SCANMAC(Batch).vbs ---->扫描程序
谢谢!
|
|
2010-6-3 23:33 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
10 楼』:
Re 9 楼
附件地址已修复
|
|
|
2010-6-4 10:04 |
|
|
yonghu111
初级用户
积分 90
发帖 57
注册 2010-4-12
状态 离线
|
|
2010-6-6 22:17 |
|
|
yonghu111
初级用户
积分 90
发帖 57
注册 2010-4-12
状态 离线
|
『第
12 楼』:
不好意思,发错了!
感谢分享!!!
|
|
2010-6-6 22:17 |
|
|
whomwhom
新手上路
积分 1
发帖 1
注册 2010-7-12
状态 离线
|
『第
13 楼』:
效率很高,扫描很快,缺点就是附件文件有错,得手动更新,否则MAC错得不成样子,建议改下附件,以方便以后下载的人。
|
|
2010-7-18 16:10 |
|
|
lmlz41
初级用户
积分 21
发帖 16
注册 2010-10-24
状态 离线
|
|
2010-10-29 15:22 |
|
|
sunhai1979
初级用户
积分 24
发帖 18
注册 2007-4-1
状态 离线
|
『第
15 楼』:
我的IP范围不是192.168.1.*,怎么修改啊?
不好意思找到了,For i = 1 To 254
NSTATE = True
HOST = "":MAC = ""
ip = "192.200.209." & i
CALL Nbtstat(ip)
If NSTATE Then
在这儿修改!!!
[ Last edited by sunhai1979 on 2010-10-29 at 16:55 ]
|
|
2010-10-29 16:49 |
|