中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 高手这么多,谁写一个扫描本网内IP和mac!
« [1] [2] [3] [4] »
作者:
标题: 高手这么多,谁写一个扫描本网内IP和mac! 上一主题 | 下一主题
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 31 楼』:  


  根据 9527 和 qzwqzw 的思路,我是这样理解的:当ping完一个IP之后,如果这个IP所代表的主机是存活的,那么就会自动在路由表中记录这个IP和其MAC,但是我试了一下ping www.cn-dos.net,之后我用ARP -A,路由表中并没有出现www.cn-dos.net的IP以及MAC,请教这是什么原因?是不是这种方法只针对内网的主机呢?请各位不吝赐教。


2006-12-31 00:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
9527
银牌会员

努力做坏人


积分 1185
发帖 438
注册 2006-8-28
来自 北京
状态 离线
『第 32 楼』:  


PING虽然也可以判断对方机器是否在线,不过成功率实在不敢恭维,效率也差的要命,还是用ARP好些,不过使用他的人一定要注意他的网段是192.168.1.0-192.168.1.255这个大家根据自己的情况改好了,不过运行速度不是太快,可能是PING给延误的,不过确实很实用的,大概解释一下,有人会问了,为什么你不直接把整段IP给FOR运行呢,我昨天试验了下,那样有些不准,所以分两段运行了,具体为什么不准这个我也不是很清楚,对于有防火墙的情况也是适用的,对屏蔽了ICMP包的机器也是适用的,因为他一定还给一个MAC地址给源计算机的,所以请大家放心使用就是了.
这是我原帖所写内容,你在从网上查一下,ARP好像只对内部网络操作有作用,对其外网是否存活好像基础命令是PING对方主机看TTL值,ARP就有一个好处那就是如果对方在线不管在线不在线对能够判断出来!!!



我今后在论坛的目标就是做个超级坏人!!!
2006-12-31 01:13
查看资料  发短消息 网志  OICQ (329429)  编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 33 楼』:  



  Quote:
Originally posted by tghksj at 2006-12-30 10:25:
re lxmxn
-----------------------
net view得到"计算机名"列表
nbtstat -a "计算机名" 得到 MAC
------------------------


[code]
@ECHO %dbg% OFF
setlocal ENAB ...


  将你的net view和nbtstat -a [计算机名]得到的具体结果发来看看,我主要是看一下结果的格式,因为我这里没有内网环境。


2006-12-31 02:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tghksj
社区乞丐

此图片另存后死机



积分 -49
发帖 90
注册 2006-12-2
状态 离线
『第 34 楼』:  


net view :
--------------
服务器名称            注释

-------------------------------------------------------------------------------
\\GS                                                                           
\\SERVER                                                                       
\\T06                                                                          
\\T11                                                                          
\\T13                                                                          
\\T14                                                                          
\\T16                                                                          
\\T18                                                                          
\\T19                                                                          
\\T20                                                                          
\\T22                                                                          
\\T23                                                                          
\\T24                                                                          
\\T25                                                                          
\\T27                                                                          
\\T28                                                                          
\\T29                                                                          
\\T34                                                                          
\\T46                                                                          
\\T49                                                                          
\\T50                                                                          
\\T51                                                                          
\\T52                                                                          
\\T53                                                                          
\\T54                                                                          
\\T60                                                                          
命令成功完成。

--------------------------------------------
nbtstat -a T06:
---------------------------
   
本地连接:
Node IpAddress: [222.173.24.71] Scope Id: []



           NetBIOS Remote Machine Name Table



       Name               Type         Status

    ---------------------------------------------

    T06            <00>  UNIQUE      Registered

    K              <00>  GROUP       Registered

    T06            <20>  UNIQUE      Registered

    K              <1E>  GROUP       Registered



    MAC Address = 00-E0-4C-10-44-49
nbtstat -a 命令竟然大小写结果不同........
NBTSTAT -A 不行......

2006-12-31 02:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
trickster
初级用户




积分 63
发帖 33
注册 2006-12-4
状态 离线
『第 35 楼』:  



  Quote:
Originally posted by ygzxw at 2006-12-28 04:12 PM:
这儿不让传图!!!发不了

可以发的,在你发贴时在最下面有提示:
  
   图1
  上传完成后根据提示找到文件连接地址即可.

      

[ Last edited by trickster on 2006-12-30 at 01:54 PM ]

2006-12-31 02:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 36 楼』:  

有个命令很方便,也不需要server服务来支持 arp -a ipaddress

2006-12-31 02:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 37 楼』:  


@echo %dbg% off
setlocal enabledelayedexpansion

for /f "tokens=1 delims=\" %%i in ('net view^|find "\\"') do (
        call :cname %%i
)
pause
goto :eof

:cname
for /f "tokens=2 delims==" %%j in ('nbtstat -a %1^|find "MAC Address"') do (
        echo %1_%%j
)
goto :eof
  再试试看?


[ Last edited by lxmxn on 2006-12-30 at 03:17 PM ]

2006-12-31 03:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tghksj
社区乞丐

此图片另存后死机



积分 -49
发帖 90
注册 2006-12-2
状态 离线
『第 38 楼』:  

粗心了:)
少了个 '
应该是for /f "tokens=1 delims=\" %%i in ('net view^|find "\\"') do (

   此帖被 -68 点积分        点击查看详情   
评分人:【 9527 分数: -11  时间:2007-1-18 01:58
评分人:【 lxmxn 分数: -16  时间:2007-1-18 02:00
评分人:【 electronixtar 分数: -19  时间:2007-1-18 02:00
评分人:【 bagpipe 分数: -11  时间:2007-1-18 02:03
评分人:【 ccwan 分数: -11  时间:2007-1-18 02:03


2006-12-31 04:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 39 楼』:  


  呵呵,谢谢楼上兄的提醒。由于没有环境,所以代码写好了就直接发上来了,没有测试。 =_=||


2006-12-31 04:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qzwqzw
银牌会员

天的白色影子


积分 2342
发帖 635
注册 2004-3-6
状态 离线
『第 40 楼』:  

arp -a 显示的并非路有表,而是ARP缓存表

前者是网络层的数据结构

后者是通过发送arp广播消息建立的,是个典型的数据链路层数据结构

数据链路层消息是不能跨网关的,所以只能在同一网段内(或者同一VLAN)

一个局域网内可能有多个网段或VLAN
---------------------------------------------

arp 并不比 ping 更好些,因为他们不是同一层次的程序

windows 的 arp 程序只操作本地arp缓存表,没有发出任何网络连接

所以如果不连接目标IP,是不可能arp 到mac的

所以,ping或者其他连接程序是 arp 的前提

除非有个arp程序可以自己发出arp请求消息
-------------------------------------------------------------------------

是否ping通与是否获取mac没有直接关系

因为ping采用icmp协议,位于网络层

网络层失败,并不意味着更低的数据链路层失败

但数据链路层失败,则网络层一定失败

所以,能ping通,就一定可以获得mac

能获得mac却不一定可以ping通

---------------------------------------------------------------------------------

印象中arp缓存表只保留10条最新的ip-mac记录

所以可能无法一次获取128条记录

但没有条件做测试,也很难说,这与系统有关,与协议无关

--------------------------------------------------------------------------------

2006-12-31 06:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 41 楼』:  

应该先看看 $ipc

2006-12-31 06:13
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 42 楼』:  


  多谢40楼兄的指点,明白一些了。


2006-12-31 06:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 43 楼』:  



  Quote:
Originally posted by qzwqzw at 2006-12-30 05:06 PM:
arp -a 显示的并非路有表,而是ARP缓存表

前者是网络层的数据结构

后者是通过发送arp广播消息建立的,是个典型的数据链路层数据结构

数据链蠮..

刚才没注意看,以为是要获得ping以后的MAC地址
arp本地缓存应支持超过256个条目

2006-12-31 06:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 44 楼』:  


@echo off
FOR /F "tokens=4-7 delims=. " %%i IN ('ipconfig^|find /i "ip address"') do set i1=%%i&set i2=%%j&set i3=%%k&set i4=%%l
FOR /F "tokens=4-7 delims=. " %%i IN ('ipconfig^|find /i "subnet"') do set m1=%%i&set m2=%%j&set m3=%%k&set m4=%%l
if "%m2%" == "0" (set b=1&set bb=254) else set b=%i2%&set bb=%i2%
if "%m3%" == "0" (set c=1&set cc=254) else set c=%i3%&set cc=%i3%
echo.>mac.dat
for /l %%b in (%b%,1,%bb%) do (
for /l %%c in (%c%,1,%cc%) do (
for /l %%d in (1,1,20) do (
ping -l 1 -w 1 -n 1 -i 1 %i1%.%%b.%%c.%%d>nul
arp -a %i1%.%%b.%%c.%%d|find "%i1%.%%b.%%c.%%d"|findstr "static dynamic">>mac.dat
set /p=%%d <nul)
)
)
echo.
type mac.dat
pause
我这也有一个,原来配置交换机时写的

2006-12-31 06:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qzwqzw
银牌会员

天的白色影子


积分 2342
发帖 635
注册 2004-3-6
状态 离线
『第 45 楼』:  

写的不错

再完善一下就可以做标配工具了

首先是对非0的掩码的支持

其次是对(1,1,20)的问题,不知道你是如何考虑的,是抽样吗?

另外,arp的条目总数不知是否系统版本影响

如果确定不低于256,那么为什么不在ping完一个段后,再arp -a呢

2006-12-31 09:11
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] [4] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: