社区
网络及通讯开发
帖子详情
ARP包模拟
mrpeterchen
2011-08-14 08:57:21
先介绍下环境
家里2台电脑,1个无线路由器
无线路由器IP 192.168.1.1
我的电脑 A 192.168.1.100
另一台 B 192.168.1.101
我模拟 A-》B的 ARP请求包。
广播形式发包
可B那头没有收到A的广播包
有谁帮忙分析下是什么原因
...全文
215
17
打赏
收藏
ARP包模拟
先介绍下环境 家里2台电脑,1个无线路由器 无线路由器IP 192.168.1.1 我的电脑 A 192.168.1.100 另一台 B 192.168.1.101 我模拟 A-》B的 ARP请求包。 广播形式发包 可B那头没有收到A的广播包 有谁帮忙分析下是什么原因
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mrpeterchen
2011-12-26
打赏
举报
回复
这个问题我解决了,结贴吧
之所以会有问题和我结构体的内存对齐有关的,仔细调整了结构体就解决了
new_bird_0001
2011-11-24
打赏
举报
回复
arp协议(地址解析协议),用来查找网络上的设备,属于第3层协议,例如ip为192.168.1.100/24的pcA想与ip为192.168.1.101/24的pc的通信,通过子网掩码得知两pcB位于同一网段,但其arp表中并没有B的Mac地址ip地址对应,于是A发出一个arp请求,请求中包含A的Mac地址、B的ip地址,arp数据报的源ip为A的ip,目的ip为广播地址ip(255.255.255.255),这样本网段的所有网络设备都会收到这个数据报,同时这些设备arp表中没有AMac-ip对应的设备一般情况下都会将A的对应信息添加到arp表中,解析数据报后,其他设备将数据报忽略,B会直接向A发送一个回应,这里的路由器收到数据报并解析后只是将其忽略,并不将数据报送到其他子网。如果A已经知道B,则A不会向网络发出arp数据报。如果A与B不在同一网段,则A会用源ip和目标ip作为ip,用路由器在A所在网段的Mac地址发送请求,如果A的arp表中没有路由器ip(网关ip)对应的Mac地址,首先会对网关ip做一个arp查找,路由器知道A的目的地ip后,同样会在路由器在B网段的arp表中找B,同时将A送来数据报中的源Mac地址变为路由器在B所在网段上的Mac地址,找到B将目标Mac变为B的Mac地址.如果路由器与B不在同一网段,则路由器会采用同样的办法将数据报传给其知道的下一个最大权值路由器或指定的路由器。这里的每一步都有可能发生arp请求。如果动态获取ip,还会发生dhcp服务器的查找。如果使用域名,还会产生dns服务器的查找,所以要看抓到哪个ip的arp查找。
云清枫
2011-11-23
打赏
举报
回复
1.100.0.0
192.168.1.100
是不是封装的时候错位了,你自己写的解包程序自然刚好解出来
换个IP地址试试,比如192.168.1.101,看看抓包出来的源地址是不是101.1.0.0
langyano1
2011-11-23
打赏
举报
回复
1 定好你的结构
2 注意主机字节和网络字节
3 家庭路由可能屏蔽arp(如果可以,换为小交换机)
无理蛇
2011-11-11
打赏
举报
回复
硬件地址是指MAC地址吧。
mrpeterchen
2011-08-23
打赏
举报
回复
怎么还是米人啊
继续UP~~·
mrpeterchen
2011-08-22
打赏
举报
回复
typedef struct _ETHDR
{
unsigned char eh_dst[6];//目的以太网地址
unsigned char eh_src[6];//源以太网地址
unsigned short eh_type;//以太网包类型
}ETHDR;//14字节
typedef ETHDR* LPETHDR;
typedef struct arphdr
{
unsigned short arp_hrd;//硬件地址格式
unsigned short arp_pro;//协议地址格式
unsigned char arp_hln;//硬件地址长度
unsigned char arp_pln;//协议地址长度
unsigned short arp_op;//ARP/RARP操作,ARP请求还是响应
unsigned char arp_sha[6];//源发送者硬件地址
unsigned long arp_spa;//源发送者协议地址
unsigned char arp_tha[6];//目的硬件地址
unsigned long arp_tpa;//目的协议地址
unsigned char padding[18];//补齐最小长度,60字节
}ARPHDR;
typedef ARPHDR* PARPHDR;
谁帮忙看看我的结构体是否正确先
谢谢啦
mrpeterchen
2011-08-22
打赏
举报
回复
唉,我用WINPCAP的啦
答8楼的,你最好去了解下PING的原理再来吧,呵呵
BORLANDSUN
2011-08-22
打赏
举报
回复
我以前写ARP包时借助了WinPCap,不知道Windows API也提供了生成ARP包的接口?
BORLANDSUN
2011-08-22
打赏
举报
回复
ARP包?Ping?ARP包是链路层的包啊,楼主超越了?
ARP中不可能有IP信息的,楼主搞错了吧?
mrpeterchen
2011-08-22
打赏
举报
回复
5楼你再分析的详细点嘛~~~~
继续UP
继续等
好漫长的等待啊~~~~~~~
e_board
2011-08-21
打赏
举报
回复
IP地址就是一个4字节的UINT或者说是ULONG;抓到的是网络字节顺序。应该是对的。
前面(转到的是后面)变成0,是因为掩码是255.255.0.0吧
mrpeterchen
2011-08-21
打赏
举报
回复
那么久了,怎么没人回啊
hua_jojo
2011-08-21
打赏
举报
回复
我不知道!....
rpaul_csd
2011-08-15
打赏
举报
回复
怎么没人回啊,我顺便也学习下,就LZ一个人说了一大通
mrpeterchen
2011-08-14
打赏
举报
回复
抓出来PING包生成的ARP,源IP是1.100.0.0
抓自己封装的ARP是对的,源IP:192.168.1.100
mrpeterchen
2011-08-14
打赏
举报
回复
对了,再多说点情况
我自己写了个ARP抓包解析程序,将那个解析程序开着,然后开始PING IP
抓出来发现IP是1.100.0.0。 但是我用IPCOHFIG看了,我IP应该是192.168.1.100才对呀
还有,我又写了个ARP封装发送程序,同样我打开发送程序,里头源IP填的是我本机的192.168.1.100;
然后我的ARP抓包程序解析出来IP是对的,192.168.1.100;
就是说我解析自己封装的包,IP是对的,可解析系统生成的ARP广播,IP就变成了怪怪的1.100.0.0;
我的操作系统是WIN7 64位, 我不知道操作系统对ARP包进行了什么处理,抓出来IP好怪
请高人帮忙
linux 下
ARP
请求
包
发送程序
linux 下
ARP
包
请求发送程序,发送
arp
请求
包
,并且捕获响应。
java
模拟
ARP
协议
使用JAVA
模拟
实现
ARP
发送
包
,应用实现了
模拟
路由器发送广播
包
,可以获取指定IP的MAC地址,应用运行还需安装WINPCAP。压缩
包
内
包
含了可运行的jpcap.jap和jpcap.dll。
本程序分为两个子程序,分别是
arp
src ,
arp
target ;
arp
src用来
模拟
一台主机用来发送一个
ARP
的询问
包
,
arp
target用来
模拟
接受
ARP
包
的主机,对不同的
ARP
询问
包
进行处理
本程序分为两个子程序,分别是
arp
src ,
arp
target ;
arp
src用来
模拟
一台主机用来发送一个
ARP
的询问
包
,
arp
target用来
模拟
接受
ARP
包
的主机,对不同的
ARP
询问
包
进行处理
ARP
攻击
模拟
工具 第一代
实现
模拟
以太网的
ARP
欺骗攻击和IP地址冲突攻击。 此为本人早期作品,固比较简陋和不完善,漏洞及错误之处可能较多请多多
包
涵! 开发环境为vs2005 + winpcap 4.0.2 编译需要导入winpcap 4.0.2 lib库 使用之前...
ARP
欺骗的原理与
模拟
,利用抓
包
工具
ARP
欺骗的原理与
模拟
,利用科来抓
包
工具来实现,文档比较详细,针对目前广泛散播的
ARP
病毒有更多的理解
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章