当前位置:文档之家› 最新实验8 使用Wireshark分析DNS协议

最新实验8 使用Wireshark分析DNS协议

实验八利用Wireshark分析DNS协议一、实验目的分析DNS协议二、实验环境与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE等软件。

三、实验步骤nslookup工具允许运行该工具的主机向指定的DNS服务器查询某个DNS记录。

如果没有指明DNS服务器,nslookup将把查询请求发向默认的DNS服务器。

其命令的一般格式是:nslookup –option1 –option2 host-to-find dns-server1、打开命令提示符(Command Prompt),输入nslookup命令。

图中显示三条命令,第一条命令:nslookup “提出一个问题”即:“将主机 的IP地址告诉我”。

屏幕上出现了两条信息:(1)“回答这一问题”DNS服务器的名字和IP地址;(2) 主机名字和IP地址。

第二条命令:nslookup –type=NS 在这个例子中,我们提供了选项“-type=N S”,域为。

执行这条命令后,屏幕上显示了DNS服务器的名字和地址。

接着下面是三个MIT DNS服务器,每一个服务器是MIT校园里权威的DNS服务器。

第三条命令:nslookup www.aiit.or.kr 在这个例子中,我们请求返回 DNS server 而不是默认的DNS服务器()。

此例中,DNS 服务器提供主机www.aiit.or.kr 的IP地址。

2、ipconfigipconfig用来显示TCP/IP 信息, 你的主机地址、DNS服务器地址,适配器等信息。

如果你想看到所有关于你所在主机的信息,可在命令行键入:ipconfig /allipconfig在管理主机所储存的DNS信息非常有用。

如果查看DNS缓存中的记录用命令:ipconfig /displaydns要清空DNS缓存,用命令:ipconfig /flushdns3、利用Wireshark捕获DNS信息(1)利用ipconfig命令清空你的主机上的DNS缓存。

(2)启动浏览器,将浏览器的缓存清空。

(3)启动Wireshark分组俘获器,在显示过滤筛说明处输入“ip.addr==your_IP_address”(如:ip.addr==202.202.210.104),过滤器(filter)将会删除所有目的地址和源地址都与指定IP地址不同的分组。

(4)开始Wireshark俘获。

(5)在浏览器的地址栏中输入:(6)停止分组俘获。

(7)重复上面的实验,只是将命令替换为:nslookup –type=NS (8)重复上面的实验,只是将命令替换为:nslookup www.aiit.or.kr 四、实验报告在实验的基础上,回答以下问题:(1)你的浏览器运行的是HTTP1.0,还是HTTP1.1?你所访问的服务器所运行的HTTP版本号是多少?(2)你的浏览器向服务器指出它能接收何种语言版本的对象?(3)你的计算机的IP地址是多少?服务器的IP地址是多少?(4)从服务器向你的浏览器返回的状态代码是多少?(5)你从服务器上所获取的HTML文件的最后修改时间是多少?(6)返回到你的浏览器的内容以供多少字节?(7)分析服务器响应报文的内容,服务器是否明确返回了文件的内容?如何获知?(8)服务器对第二个HTTP GET请求的响应中的HTTP状态代码是多少?服务器是否明确返回了文件的内容?请解释。

(9)与这个HTTP GET请求相对应的响应报文的状态代码和状态短语是什么?(10)你的浏览器一共发出了多少个HTTP GET请求?这些请求被发送到的目的地的IP地址是多少?(11)对于浏览器发出的最初的HTTP GET请求,服务器的响应是什么(状态代码和状态短语)?(12)当浏览器发出第二个HTTP GET请求时,在HTTP GET报文中包含了哪些新的字段?(13)DNS查询报文的目的端口号是多少?DNS查询响应报文的源端口号是多少?//根据半径计算圆的周长和面积#include <iostream.h>const float PI=3.1416; //声明常量(只读变量)PI为3.1416 float fCir_L(float); //声明自定义函数fCir_L()的原型float fCir_S(float); //声明自定义函数fCir_S()的原型//以下是main()函数main(){float r,l,s; //声明3个变量cout<<"R="; //显示字符串cin>>r; //键盘输入l=fCir_L(r); //计算圆的周长,赋值给变量ls=fCir_S(r); //计算圆的面积,赋值给变量scout<<"l="<<l; //显示计算结果cout<<"\ns="<<s;}//定义计算圆的周长的函数fCir_L()float fCir_L(float x){float z=-1.0; //声明局部变量if (x>=0.0) //如果参数大于0,则计算圆的周长z=2*PI*x;return(z); //返回函数值}//定义计算圆的面积的函数fCir_S()float fCir_S(float x){float z=-1.0; //声明局部变量if (x>=0.0) //如果参数大于0,则计算圆的面积z=PI*x*x;return(z); //返回函数值}/* Program: P1-2.CPPWritten by: HapDate written: 02:11:10*/#include <iostream.h>void main(void){double s1,s2,s3;s1=1.5; /* 对变量s1赋值*/cout<<"s1="<<s1<<endl;/* 对变量s2赋值*/ s2=2.5;cout<<"s2="<<s2<<endl;s3= /* 对变量s3赋值*/ 3.5;cout<<"s3="<<s3<<endl;cout<<"s1+s2+s3="<<s1+s2+s3<<endl; //计算并显示//计算并显示cout<<"s1+s2+s3="<<s1+s2+s3<<endl;}#include <iostream.h>main(){double r=1.0;cout<<"r="<<r<<endl;double l;l=2*3.1416*r; //计算圆的周长,赋值给变量l cout<<"l="<<l<<endl; //显示圆的周长double s=3.1416*r*r; //计算圆的面积,赋值给变量s cout<<"s="<<s<<endl; //显示圆的面积cout<<"R="; //显示提示输入的信息cin>>r; //键盘输入l=2*3.1416*r; //计算圆的周长,赋值给变量l cout<<"l="<<l<<endl; //显示圆的周长s=3.1416*r*r;cout<<"s="<<s<<endl; //显示圆的面积}#include <iostream.h> //包含iostream.h头文件void main(){//输出字符常量、变量和字符串char c1='A';cout<<'W';cout<<c1<<endl;cout<<"This is a test."<<endl;cout<<"------------------"<<endl;//输出整型常量、变量和表达式int n=100;cout<<10;cout<<n;cout<<2*n<<endl; //输出整型表达式cout<<"------------------"<<endl;//输出浮点型常量、变量和表达式double pi=3.1415926,r=10.0,s=pi*r*r;cout<<pi<<endl;cout<<r;cout<<s;cout<<2*r*pi<<endl; //输出浮点型表达式cout<<"------------------"<<endl;//一个cout可以输出多项数据cout<<'W'<<" "<<c1<<endl;cout<<"This is a test."<<endl;cout<<"pi="<<pi<<" r="<<r<<" s="<<s<<endl;}#include <iostream.h> //包含iostream.h头文件main(){//输入输出字符char c;cin>>c;cout<<"c="<<c<<endl;//输入输出整型数据int n;cin>>n;cout<<"n="<<n<<endl;//输入输出浮点型数据double x;cin>>x;cout<<"x="<<x<<endl;。

相关主题