阅读:7868回复:8
真的很郁闷!ARP包发出去了,目标机器总是不回应?
在局域网内,向局域网内所有计算机,不断定时发送ARP请求包,希望收到我的ARP请求包的计算机,向我回复ARP应答包。
我在目标计算机检查收到包的情况。发现目标计算机确实收到了ARP请求包,但是发现老是不应答。 可是网关发出的ARP请求包,它就立即应答了。 真的郁闷! 有人知道原因吗? |
|
沙发#
发布于:2007-02-14 09:48
怎么没有人回应呢?
|
|
板凳#
发布于:2007-02-14 09:52
你可以在目标机上抓报看以下有没有目标机本身有没有相应,如果没有这说明你的arp报结构本身有问题,构造的不对。
|
|
地板#
发布于:2007-02-14 12:22
引用第2楼wink624于2007-02-14 09:52发表的“”: 或者是IP头的校验和不对 |
|
|
地下室#
发布于:2007-02-14 12:34
构造应该没有问题。就是用ARP的头结构来做的。
typedef struct _ARP_HEADER { WORD Type1; WORD Type2; BYTE Length1; BYTE Length2; WORD Opcode; BYTE SourceMac[6]; BYTE SourceIp[4]; BYTE DestinationMac[6]; BYTE DestinationIp[4]; } ARP_HEADER, *PARP_HEADER; 目标计算机确实有反应。 另外,我创建一个函数,假使不允许目标计算机修改设定的IP。在目标计算机发出查询的ARP包时,使用本函数创建的ARP包,马上回复,目标计算机马上出现“IP已存在,不能设定”的提示。也是说,目标计算机确实收到ARP,产且有反应。 我估计目标计算机是收到我的ARP包,但我要求查询目标计算机IP地址的请求却不接收。 不知道创建ARP包时除了以太头和ARP头外,是否还需设置其它地方? 又或者,会不会在发出ARP请求包前,需用其它协议通知目标计算机,比如端口138,137的协议等。 |
|
5楼#
发布于:2007-02-14 12:36
引用第3楼root60931于2007-02-14 12:22发表的“”: ARP包哪来IP头。TCP和UDP包才有IP头啊! |
|
6楼#
发布于:2007-02-14 16:31
你可以先用SendARP()函数试一试看看有没有回应,要是没有回应,就说明网络不通,或者目标机器屏蔽了相关的功能。此外,ARP只能在同一个网段内才有效,跨网段的是不行的了
|
|
|
7楼#
发布于:2007-02-15 10:15
看来只能用SendARP()函数试下了。
|
|
8楼#
发布于:2007-02-26 08:30
目标机既然有相应,那说明是你的机器没有收到,你察看一下响应包的内容是不是地址错了,如果错了,肯定是你构造arp包的时候源地址赋值错了,相应包发到别处了
|
|