中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: [原创]局域网内MAC扫描 上一主题 | 下一主题
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
状态 离线
『第 2 楼』:  

一直用lanhelper有机会试试LZ这个,3Q



http://dato.ys168.com
google search bot
http://dato.minidns.net/
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
状态 离线
『第 5 楼』:  

谢谢!

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
状态 离线
『第 11 楼』:  

willsort

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
状态 离线
『第 14 楼』:  

也不错的哦!收藏了!

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
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: