|
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 |
|
|
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 来自 甘肃.临泽
状态 离线
|
|
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 |
|