mac地址扫描实验
网络攻防对抗 大实验答辩报告
实验名称:ARP协议获取局域网主机mac地址 实验类型:验证型实验 指导老师: 专业班级: 姓 名: 学 号: 电子邮件: 实验地点: 实验日期: 年 月 日
实验成绩:
一、背景知识
在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。这样就存在把IP地址变换成物理地址的地址转换问题。以以太网环境为例,为了正确地向目的主机传送报文,必须把目的主机的32位IP地址转换成为48位以太网的地址。这就需要在互连层有一组服务将IP地址转换为相应物理地址,这组协议就是ARP协议。
1、ARP协议的工作原理
在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如附表所示。
我们以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.1.1的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。
2、以太网物理帧和ARP数据帧结构如下图:
二、实验内容
本次作业基于ARP协议,编写程序,实现获取本局域网内全部活动主机MAC地址与IP地址对应列表的程序。
要求使用Winpcap,手动封装ARP请求数据包,实现ARP响应数据包的接收和解析。
最好有界面,如果没有界面,则把获取到的局域网主机MAC信息输出到文件中去。
如果有界面的话,要求实现列出本机所有网络设备,用户能自由选择可用设备进行局域网主机MAC地址的获取,并把获取结果输出到界面上。
三、开发环境
1、开发环境与开发语言
开发时选择了C++语言作为开发语言,并选择Microsoft Visual 2008作为开发环境和编译环境。
(1)开发平台截图如下:
2、运行环境
运行环境是在Windows环境下,鼠标双击可执行程序,或者进入DOS后台,在DOS窗口键入可执行程序名称即可。
四、流程及核心算法实现
1、程序流程
程序流程图如下:
开始 获取所有可用设备,并在控制台显示 提示用户选择设备 可用? 否 提示出错 是 获得本机IP地址,和MAC地址,并在控制台中显示出来 开启两个工作线程,分别负责向局域网内发送ARP请求包和接受局域网返回的ARP回复包 向局网内机逐发ARP求包 域主个送请在控制台显示获取的主机IP地址以及相应的MAC地址 监听ARP响应数据包 结束 2、主要功能代码实现
public static string GetMacAddress(string RemoteIP) {
StringBuilder macAddress = new StringBuilder();//分配一个内存空间 try {
Int32 remote = inet_addr(RemoteIP);
Int64 macInfo = new Int64();//分配一个MAC地址的内存 Int32 length = 6;
SendARP(remote, 0, ref macInfo, ref length);
Console.WriteLine(SendARP(remote, 0, ref macInfo, ref length)); Console.ReadLine();
string temp = Convert.ToString(macInfo, 16).PadLeft(12, '0').ToUpper();
int x = 12;
for (int i = 0; i < 6; i++) {
if (i == 5) {
macAddress.Append(temp.Substring(x - 2, 2)); } else {
macAddress.Append(temp.Substring(x - 2, 2) + \}
x -= 2; }
return macAddress.ToString(); } catch {
return macAddress.ToString(); } }
五、操作演示
…… 此处隐藏:326字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




