西工大计算机网络实验四

合集下载

计算机网络技术实验报告四

计算机网络技术实验报告四

天津理工大学实验报告学院(系)名称:F -FGHIJKLMNOPQRSTUVWXYZ A B C D EG- G H I J K L M N O P Q R S T U V W X Y Z A B C D E FH -H I J K L M N O P Q R S T U V W X Y Z A B C D E F GI- I J K L M N O P Q R S T U V W X Y Z A B C D E F G HJ -J K L M N O P Q R S T U V W X Y Z A B C D E F G H IK -K L M N O P Q R S T U V W X Y Z A B C D E F G H I JL -L M N O P Q R S T U V W X Y Z A B C D E F G H I J KM -M N O P Q R S T U V W X Y Z A B C D E F G H I J K LN -N O P Q R S T U V W X Y Z A B C D E F G H I J K L MO -O P Q R S T U V W X Y Z A B C D E F G H I J K L M NP -P Q R S T U V W X Y Z A B C D E F G H I J K L M N OQ -Q R S T U V W X Y Z A B C D E F G H I J K L M N O PR -R S T U V W X Y Z A B C D E F G H I J K L M N O P QS -S T U V W X Y Z A B C D E F G H I J K L M N O P Q RT -T U V W X Y Z A B C D E F G H I J K L M N O P Q R SU -U V W X Y Z A B C D E F G H I J K L M N O P Q R S TV -V W X Y Z A B C D E F G H I J K L M N O P Q R S T UW -W X Y Z A B C D E F G H I J K L M N O P Q R S T U VX -X Y Z A B C D E F G H I J K L M N O P Q R S T U V WY -Y Z A B C D E F G H I J K L M N O P Q R S T U V W XZ -Z A B C D E F G H I J K L M N O P Q R S T U V W X Y加密方法:维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。

计算机网络实验指导书(附部分答案)..

计算机网络实验指导书(附部分答案)..

计算机网络实验指导书湖南工业大学计算机与通信学院网络工程系目录实验一 802.3协议分析和以太网 (3)一、实验目的 (3)二、预备知识 (3)三、实验环境 (4)四、实验步骤 (5)五、实验报告内容 (6)实验二 IP层协议分析 (7)一、实验目的 (7)二、实验环境 (7)三、实验步骤 (7)四、实验报告内容 (8)实验三 TCP协议分析 (9)一、实验目的及任务 (9)二、实验环境 (9)三、实验步骤 (9)四、实验报告内容 (10)实验四 HTTP和DNS分析 (11)一、实验目的及任务 (11)二、实验环境 (11)三、实验步骤 (11)四、实验报告内容 (12)实验一802.3协议分析和以太网一、实验目的1.分析802.3协议2.熟悉以太网帧的格式3.熟悉ARP报文的格式二、预备知识要深入理解网络协议,需要仔细观察协议实体之间交换的报文序列。

为探究协议操作细节,可使协议实体执行某些动作,观察这些动作及其影响。

这些任务可以在仿真环境下或在如因特网这样的真实网络环境中完成。

观察在正在运行协议实体间交换报文的基本工具被称为分组嗅探器(packet sniffer)。

顾名思义,一个分组嗅探器捕获(嗅探)计算机发送和接收的报文。

一般情况下,分组嗅探器将存储和显示出被捕获报文的各协议头部字段内容。

图1为一个分组嗅探器的结构。

图1右边是计算机上正常运行的协议(在这里是因特网协议)和应用程序(如:Web浏览器和ftp客户端)。

分组嗅探器(虚线框中的部分)是附加计算机普通软件上的,主要有两部分组成。

分组捕获库接收计算机发送和接收的每一个链路层帧的拷贝。

高层协议(如:HTTP、FTP、TCP、UDP、DNS、IP等)交换的报文都被封装在链路层帧(Frame)中,并沿着物理介质(如以太网的电缆)传输。

图1假设所使用的物理媒体是以太网,上层协议的报文最终封装在以太网帧中。

分组嗅探器的第二个组成部分是分析器。

西工大第四次数据库实验报告

西工大第四次数据库实验报告

《数据库系统概论》实验报告题目:实验四存储过程/触发器/ODBC数据库编程姓名班级学号日期刘凯10031201 2012302606 2014.11一、实验内容、步骤以及结果1.使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。

sp_rename 'V_SPJ','V_SPJ_三建'2.存储过程的创建与使用:(1)使用SPJ数据库中的S表、P表、J表、SPJ表,创建一个带参数的存储过程—jsearch。

该存储过程的作用是:当任意输入一个工程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME)以及工程的名称(JNAME)。

执行jsearch存储过程,查询“J1”对应的信息。

CREATE PROCEDURE jsearch(@SPJ_JNO CHAR(10))ASBEGIN SELECT SNAME,PNAME,JNAMEFROM SPJ,S,P,JWHERE @SPJ_JNO=SPJ.JNO AND SPJ.JNO=J.JNO AND SPJ.PNO=P.PNO AND SPJ.SNO=S.SNO END;(2)创建一个带有输出游标参数的存储过程jsearch2,功能同1),执行jsearch2,查询“J1”对应信息,并且将得到的结果用print语句输出到控制台。

CREATE PROCEDURE jsearch2(@SPJ_JNO CHAR(10),@SPJ_CURSOR CURSOR VARYING OUTPUT)ASSET @SPJ_CURSOR = CURSORFORSELECT S.SNAME,P.PNAME,J.JNAMEFROM SPJ,S,P,JWHERE @SPJ_JNO=SPJ.JNO AND SPJ.JNO=J.JNO AND SPJ.PNO=P.PNO AND SPJ.SNO=S.SNO OPEN @SPJ_cursorjsearch 'J1'(3)使用SPJ数据库中的S表,为其创建一个加密的存储过程—jmsearch。

西工大数字集成电路实验四、译码器的设计及延迟估算

西工大数字集成电路实验四、译码器的设计及延迟估算

数字集成电路实验报告西北工业大学2014年5月21日星期三实验四、译码器的设计及延迟估算1、设计译码器并估算延迟设计一个用于16bit 寄存器堆的译码器,每一个寄存器有32bit 的宽度,每个bit 的寄存器单元形成的负载可以等效为3个单位化的晶体管(后面提到负载都为单位化后的负载)。

提示:可以首先假定每一级的逻辑努力为1,考虑到存在四输入的与非门也可考虑假设总的逻辑努力为2,从而确定译码器的级数。

译码器的结构可参考典型的4-16译码器① 假定4个寄存器地址位的正反8个输入信号,每个信号的输入负载可以等效为10。

确定译码器的级数,并计算相关逻辑努力,以此来确定每一级中晶体管的尺寸(相当于多少个单位化的晶体管)及整个译码电路的延迟(以单位反相器的延迟的本征延迟Tp0为单位)。

答: 9.696/10F 96332,10int ==⇒=⨯==ext g C C C ,假定每一级的逻辑努力:G=1,又因为分支努力(每个信号连接8个与非门):81*8*1B ==,路径努力8.7686.91=⨯⨯==GFB H 所以,使用最优锥形系数就可得到最佳的电路级数39.36.3ln 8.76ln 6.3ln ln ===H N ,故N 取3级。

因为逻辑努力:2121G =⨯⨯=; 路径努力:6.15386.92=⨯⨯==GFB H则使得路径延时最小的门努力 36.5)6.153(3/1===N H h 。

所以:第一级晶体管尺寸为 10; 故第二级晶体管尺寸为7.681036.5=⨯;第三级尺寸为956.1768.27.6=⨯;故延迟为:0008.22)36.5136.5436.51(p p p t t t =+++++=...96② 如果在四个寄存器地址输入的时候,只有正信号,反信号必须从正信号来获得。

每个正信号的输入的等效负载为20,使用与①中同样的译码结构,在这种条件下确定晶体管的大小并评估延迟(以单位反相器的延迟的本征延迟Tp0为单位)。

西北工业大学21年机考答案 计算机网络(202104) (180).doc

西北工业大学21年机考答案 计算机网络(202104) (180).doc

计算机网络(202104)1.C类IP地址的网络号占()。

位。

A.8B.16C.24D.32答案: C2.下列给出的协议中,属于TCP/IP协议结构的应用层是()。

A.UDPB.IPC.TCPD.Telnet答案: D3.同轴电缆可分为两种,其中阻抗为50Ω的是()。

A.双绞线B.基带同轴电缆C.宽带同轴电缆D.以上都不是答案: B4.采用曼彻斯特编码,100Mbps传输速率所需要的调制速率为()。

A.200MBaudB.400MBaudC.50MBaudD.100MBaud答案: A5.具有检错和纠错功能的编码是()。

A.奇偶校验法B.CRCC.海明法D.以上三种都是答案: B6.将IP地址转换为物理地址的协议是()。

A.IPB.ICMPC.ARPD.RARP答案: C7.交换机端口可以分为半双工与全双工两类,对于100Mbps的全双工端口,端口带宽为()。

A.100MbpsB.200MbpssC.400MbpsD.800Mbps答案: D8.下列路由协议中,()是一种距离向量协议。

A.IS-ISB.OSPFC.RIPD.BGP答案: C9.计算机网络拓扑是通过网中结点与通信线路之间的几何关系表示网络中各实体间的()。

A.联机关系B.结构关系C.主次关系D.层次关系答案: B10.在IP地址的A类地址、B类地址、C类地址和D类地址中,()地址对应的网络中网络数最少而主机数最多。

A.A类B.B类C.C类D.D类答案: A11.()是实现局域网-广域网互联的主要设备。

A.集线器B.路由器C.路由器或网关D.网关答案: B12.对于主机域名来说,其中()表示主机名。

A.zjB.for答案: B13.要把学校里行政楼和实验楼的局域网互连,可以通过()实现。

A.交换机B.MODEMC.中继器D.网卡答案: A14.()上传送需进行调制编码。

A.数字数据在数字信道B.数字数据在模拟信道C.模拟数据在数字信道 D.模拟数据在模拟信道答案: B15. WWW服务使用的默认端口号为()。

网络安全实验四

网络安全实验四

实验四 Windows2003防火墙配置一实验目的1.了解防火墙的含义与作用2.学习防火墙的基本配置方法二实验原理一.防火墙在古代,人们已经想到在寓所之间砌起一道砖墙,一旦火灾发生,它能够防止火势蔓延到别的寓所,于是有了“防火墙”的概念。

进入信息时代后,防火墙又被赋予了一个类似但又全新的含义。

防火墙是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合。

它是不同网络或网络安全域之间信息的唯一出入口,能根据企业的安全政策控制(允许、拒绝、监测)出入网络的信息流,且本身具有较强的抗攻击能力。

它是提供信息安全服务,实现网络和信息安全的基础设施。

在逻辑上,防火墙是一个分离器、一个限制器、也是一个分析器,有效地监控了内部网络和Internet之间的任何活动,保证了内部网络的安全。

二.防火墙功能1.防火墙是网络安全的屏障一个防火墙(作为阻塞点、控制点)能极大地提高一个内部网络的安全性,并通过过滤不安全的服务而降低风险。

由于只有经过精心选择的应用协议才能通过防火墙,所以网络环境变得更安全。

如防火墙可以禁止诸如众所周知的不安全的NFS协议进出受保护的网络,这样外部的攻击者就不可能利用这些脆弱的协议来攻击内部网络。

防火墙同时可以保护网络免受基于路由的攻击,如IP选项中的源路由攻击和ICMP重定向中的重定向攻击。

防火墙应该可以拒绝所有以上类型攻击的报文并通知防火墙管理员。

2.防火墙可以强化网络安全策略通过以防火墙为中心的安全方案配置,能将所有安全软件(如口令、加密、身份认证、审计等)配置在防火墙上。

与将网络安全问题分散到各个主机上相比,防火墙的集中安全管理更经济。

例如在网络访问时,一次一密口令系统和其它的身份认证系统完全可以不必分散在各个主机上,而集中在防火墙一身上。

3.对网络存取和访问进行监控审计如果所有的访问都经过防火墙,那么,防火墙就能记录下这些访问并作出日志记录,同时也能提供网络使用情况的统计数据。

西工大软件工程信号与系统实验四

西北工业大学《信号与系统》实验报告学院:软件与微电子学院学号:姓名:专业:实验时间:实验地点:软件学院实验室310 指导教师:陈勇西北工业大学2017年9月一、实验目的运用MATLAB软件对理论课程所学的离散信号与连续信号的相关知识进行表示与验证二、实验要求1.学会使用MATLAB进行连续时间傅里叶变换的数值近似;2.了解连续时间傅里叶变换性质;3.了解系统的时域和频域特性;4.学会使用MATLAB函数freqs,residue;5.学会用部分分式展开求微分方程的单位冲激响应。

三、实验设备(环境)1. Windows 10 64位系统2. MATLAB R 2014b 软件环境四、实验内容与步骤4.2 连续时间傅里叶变换的数值近似基本题(a)(b)(c)(d)(e)(f)(g)4.3 连续时间傅里叶变换性质基本题(a)(b)4.4 系统的时域和频域特性基本题(a)(b)(c)(d)4.5 用部分分式展开求微分方程的单位冲激响应基本题(a)(b)(c)五、实验结果4.2连续时间傅里叶变换的数值近似(A)代码如下:结果如下:(B)代码如下:clear;clc;x1=sym('exp(-2*(t-5))*Heaviside(t-5)')x2=sym('exp(2*(t-5))*Heaviside(-t+5)')y1=fourier(x1)y2=fourier(x2)y=simple(y1+y2)结果如下:x1 =exp(-2*(t-5))*Heaviside(t-5)x2 =exp(2*(t-5))*Heaviside(-t+5)y1 =1/(2+i*w)*exp(-5*i*w)y2 =1/(2-i*w)*exp(-5*i*w)y =4*exp(-5*i*w)/(4+w^2)(C)代码如下:clear;clc;tau=0.01;T=10;t=[0:tau:T-tau];N=length(t)y=exp(-2*abs(t-5));y1=fft(y)y2=fftshift(tau*fft(y)错误分析:由于N的长度为1000,故计算出的样本Y(jw)值有1000个,由于计算结果太多,因此没有将运行结果保存过来。

计网实验四

综合性、设计性实验报告姓名_游金涛_学号200808002304专业_通信工程_班级0806实验课程名称计算机网络实验__指导教师及职称___尹向东副教授开课学期2010 学年上学期上课时间2010 年 5 月24 日湖南科技学院教务处编印一、实验设计方案实验名称:实验4 WWW服务器和FTP服务器的设计实验时间:2010/5/24小组合作:是○否☑小组成员:1、实验目的:1、掌握WEB站点的规划2、掌握默认WEB站点、管理WEB站点和添加新的WEB站点的设置和使用。

2、实验设备及材料:四人作为一个实验小组,每人一台计算机机,计算机A、B、C、D使用固定IP地址,分别担任DNS、IIS服务;交换机多组共用。

3、理论依据:WEB服务是Internet中最为重要的应用,它是实现信息发布、资料查询、数据处理、视频点播等诸多应用的基本平台。

WEB服务的实现采用客户/服务器模型,信息提供者称为服务器,信息的需要者或获取者称为客户。

作为服务器的计算机中安装有WEB服务器端程序(如Netscape iPlanet Web Server、Microsoft Internet Information Server等),并且保存有大量的公用信息,随时等待用户的访问。

作为客户机的计算机中则安装Web客户端程序,即Web浏览器(如Netscape Navigator、Microsoft Internet Explore等),可通过局域网络或Internet从Web服务器中浏览或获取所有信息。

IIS(Internet Information Server,互联网信息服务)是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面。

4、实验方法步骤及注意事项:实验一设置WEB服务一、规划组内计算机的域名,例如 、、等,并在A计算机上安装DNS服务器,做好域名解析。

计算机网络实验

计算机网络实验班级学号姓名一、实验内容。

二、实验操作步骤及结果。

http(1)实验步骤:①打开浏览器;②开启Wireshark,但不开始数据包捕获。

在Wireshark 主窗口顶部的Filter 中输入“ http”,因此只有捕获的HTTP 消息稍后会显示在数据包列表窗口中;③等待大约一分钟,然后开始Wireshark 数据报捕获;④在浏览器中输入如下地址:/wireshark-labs/HTTP-wireshark-file1.html 浏览器将会显示一个很简单的且只有一行的HTML 文件;⑤停止Wireshark 的数据报捕获。

得到如下两条数据报:(2)回答问题:Q1.你的浏览器运行的HTTP 是1.0 版本还是1.1 版本?服务器运行HTTP 是哪个版本?A1.我的浏览器运行的是1.1版本,服务器运行的也是1.1版本。

Q2.你的浏览器能接受服务器的哪些语言?A2.我的浏览器能接受zh-cn和zh, en ,en_us等语言。

Q3.你的电脑的IP 地址是多少?服务器的IP 地址是多少?A3.我的IP地址是10.22.48.226,服务器的IP地址是128.119.245.12Q4.从服务器返回到你的浏览器的状态码是什么?A4.状态码是304.Q5.什么时候在服务器端得到最后修正的HTML 文件?A5.2017.5.2305:59:01Q6.多少字节的内容已经返回到你的浏览器?A6.:293字节。

Q7.除以上已回答过的字段外,头部还有哪些字段?在数据包内容窗口中检查原始数据,是否有未在数据包列表中显示的头部?A7.HTTP请求报文中还有Host字段、connection字段、Accept字段、User-agent字段、Accept-Encoding字段等。

HTTP响应报文中还有server字段、connection字段等。

实验二:HTTP GET/Response 有条件的相互作用(1)实验步骤:在开始前先确信你的浏览器缓存是空的,对于IE 浏览器选择工具-Internet 选项-删除文件,钩选“删除全部文件”从你的浏览器中移除缓存的文件,然后点击确定按钮。

西工大2020年4月《计算机网络》作业机考参考答案

B.时分多路复用
C.统计时分复用
D.波分多路复用
正确答案:
10.当前最流行的网络管理协议是()。
A.TCP/IP
B.SNMP
C.SMTP
D.TCP
正确答案:
11.Ipv6地址的长度是()位。
A.16
B.32
C.64
D.128
正确答案:
12.对于主机域名来说,其中()表示主机名。
A.zj
B.for


正确答案:
13.管理计算机通信的规则称为()。
A.协议
B.介质
C.服务
D.网络操作系统
正确答案:
14.网络协议主要要素为()。
A.数据格式、编码、信号电平
B.数据格式、控制信息、速度匹配
C.语法、语义、同步
D.编码、控制信息、同步
正确答案:
15.采用相位幅度调制PAM技术,可以提高数据传输速率,例如采用8种相位,每种相位取2种幅度值,可使一个码元表示的二进制数的位数为()。
D.物理层、数据链路层、应用层
正确答案:
40.ATM信元的长度是()个字节。
A.5
B.38
C.48
D.53
正确答案:
41.要把学校里行政楼和实验楼的局域网互连,可以通过()实现。
A.交换机
B.MODEM
C.中继器
D.网卡
正确答案:
42.Modem的主要功能是()。
A.模拟信号的放大
B.数字信号的编码
A.提供可靠的端—端服务,透明地传送报文
B.路由选择、拥塞控制与网络互连
C.在通信实体之间传送以帧为单位的数据
D.数据格式变换、数据加密与解密、数据压缩与恢复
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告 实验四、解析IP分组 一、实验目的 1、IP分组是网络层传输的基本单元,通过接受和解析IP分组,了解IP分组基本结构,与IP协议基本功能; 2、输出TCP报文数据,以16进制输出,建立TCP连接,分析TCP的三次握手。

二、实验过程 (1)实验流程 (2)实验原理: 想要抓取网络中的IP数据包,必须对网卡进行编程,我们使用套接字(socket)进行编程。但是,在通常情况下,网络通信的套接字程序只能响应与自己硬件地址相匹配的数据包或是以广播形式出发的数据包。对于其他形式的数据包,如已到达网络接口但却不是发送到此地址的数据包,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取与自己无关的数据包。我们要想获取流经网络设备的所有数据包,就需要将网卡设置为混杂模式。 本程序主要由三部分构成:初始化原始套接字,反复监听捕获数据包和解析数据包。 1)使用原始套接字 套接字分为三种,即流套接字(Stream Socket)、数据报套接字(Datagram Socket)和原始套接字(Raw Socket)。要进行IP数据包的接受与发送,应使用 原始套接字。 在WSASoccet函数中,第一个参数指定通信发生的区字段,AF_INET是针对Internet的,允许在远程主机之间通信。第二个参数是套接字的类型,AF_INET地址族下,有SOCK_STREAM、SOCK_DGRAM、SOCK_RAW三种套接字类型。在这里,我们设置为SOCK_RAW,表示我们声明的是一个原始套接字类型。第三个参数依赖于第二个参数,用于指定套接字所用的特定协议,这里使用IP协议。第四个参数为WSAPROTOCOL_INFO位,该位可以置空,永远置0。第六个参数是标志位,WSA_FLAG_OVERRLAPPED表明可以使用发送接收超时设置,本课程设计也可以把这个标志位设置为NULL,因为本设计不用考虑超时情况。 创建原始套接字后,IP头就会包含在接收的数据中。然后,我们可以设置IP头操作选项,调用sotscockpot函数。其中flag设置为TRUE,并设定IP_HDRINCL选项,表明用户可以亲自对IP头进行处理。之后,完成对socket的初始化工作。 填写sockaddr_in的内容时,其地址值应填写为本机IP地址可以通过gethostbyname()函数获取;端口号可以随便填写,但不能与系统冲突;协议族应填写为AF_INET。注意,sockaddr_in 结构的值必须是以网络字节顺序表示的值,而不能直接使用本机字节顺序的值,使用htoms()函数可以将无符号短整型的主机数据转换为网络字节的顺序的数据。最后使用bind()函数将socket绑定到本地网卡上。 绑定网卡后,需要WSAIoctl()函数把网卡设置为混杂模式,使网卡能够接收所有网络数据,如果接收的数据包中的协议类型和定义的原始套接字匹配,那么接收到的数据就拷贝到套接字中。因此,网卡就可以接收所有经过的IP包。 2)接收数据包 在程序中可使用RECV()函数接收经过的IP包。该函数有四个参数,第一个参数接收操作所用的套接字描述符;第二个参数接收到缓冲区的地址;第二个参数接收缓冲区的地址;第三个参数接收缓冲区的大小,也就是所要接收的字节数;第四个参数是一个附加标志,如果对所发送的数据没特殊要求,直接设为0。因为IP数据包的最大长度是65536B,因此缓冲区的大小不能小于65535B。设置缓冲区后,可利用循环来反复监听接收IP包,用recv()函数接收。 然后定义IP头部的数据结构。程序需要定义一个数据结构表示IP头部这时我们只考虑IP头部结构,不考虑数据部分。在捕获IP数据包后,可以通过指针把缓冲区的内容强制转化为IP_HEADER数据结构。 3)解析IP数据包 解析IP数据包的字段有两种策略。针对长度为8位、16位和32位的字段 (或子字段)时,可以利用IP_HEADER的成员指教获取。要解析长度不是9位倍数的字段(或子字段)时,可以利用C语言中的位移以及与、或操作完成。下面给出了通过IP_HEADER解析IP头各个字段的代码。

(3)IP源代码 #include "winsock2.h" #include "ws2tcpip.h" #include "iostream" #include "stdio.h" #pragma comment(lib,"ws2_32.lib")

using namespace std; static const int NumOfData = 8; typedef struct _IP_HEADER { union { BYTE Version;//版本 BYTE HdrLen;//IHL }; BYTE ServiceType;//服务类型 WORD TotalLen;//总长 WORD ID;//标识 union { WORD Flags;//标志 WORD FragOff;//分段偏移 }; BYTE TimeToLive;//生命期 BYTE Protocol;//协议 WORD HdrChksum;//头校验和 DWORD SrcAddr;//源地址 DWORD DstAddr;//目的地址 BYTE Options;//选项 DWORD Data[NumOfData]; }IP_HEADER;

//逐位解析IP头中的信息 void getVersion(BYTE b,BYTE &version) { version=b>>4; }

void getIHL(BYTE b,BYTE &result) { result=(b & 0x0f)*4; }

char *parseServiceType_getProcedence(BYTE b) { switch(b>>5) { case 7: return "Network Control"; break; case 6: return "Internet work Control"; break; case 5: return "CRITIC/ECP"; break; case 4: return "Flash Override"; break; case 3: return "Flash"; break; case 2: return "Immediate"; break; case 1: return "Priority"; break; case 0: return "Routine"; break; default: return "Unknown"; } }

char *parseServiceType_getTOS(BYTE b) { b=(b>>1)&0x0f; switch(b) { case 0: return "Normal service"; break; case 1: return "Minimize monetary cost"; break; case 2: return "Maximize reliability"; break; case 4: return "Maximize throughput"; break; case 8: return "Minimize delay"; break; case 15: return "Maximize security"; break; default: return "Unknown"; } }

void getFlags(WORD w,BYTE &DF,BYTE &MF) { DF=(w>>14)&0x01; MF=(w>>13)&0x01; }

void getFragOff(WORD w,WORD &fragOff) { fragOff=w&0x1fff; } char *getProtocol(BYTE Protocol) { switch(Protocol) { case 1: return "ICMP"; case 2: return "IGMP"; case 4: return "IP in IP"; case 6: return "TCP"; case 8: return "BGP"; case 17: return "UDP"; case 41: return "RSVP"; case 89: return "OSPF"; default: return "UNKNOWN"; } } void ipparse(FILE *file,char *buffer) {

int k,j; IP_HEADER ip=*(IP_HEADER *)buffer; fseek(file,0,SEEK_END); for(k=0;k<5;k++) { for(j=0;j<20;j++) { fprintf(file,"%x%x ",((unsigned char)buffer[20*k+j])>>4,(buffer[20*k+j]&0x0f)); } fprintf(file,"\n"); } //解析版本信息 BYTE version; getVersion(ip.Version,version); fprintf(file,"版本=%d\r\n",version);

相关文档
最新文档