合工大 网络实践 报告.docx
《合工大 网络实践 报告.docx》由会员分享,可在线阅读,更多相关《合工大 网络实践 报告.docx(38页珍藏版)》请在冰点文库上搜索。
合工大网络实践报告
网络实践工程报告
课程:
计算机网络
姓名:
王佳淼
学号:
2011914
班级:
信息安全11-1
日期:
2014-01-02
实验一局域网的组网
1、实验目的
(1)了解网线制作标准,了解各种网线的应用范围
(2)网络设备的介绍
(3)IP地址
(4)IP地址寻址过程
(5)WINDOWS下常用网络命令介绍
2、所用软件环境或工具
交换机、PC机、网线、windowsxp操作系统
3、步骤
1.本实验的网络连接
将直通双绞线的一端接到交换机上,另一端接到PC机上的网卡上,此时交换机对应的端口指示灯应变亮。
2.IP地址的配置
(1)在WINxp操作系统下,右键选择“网上邻居”—>“属性”—>右键选择“本地连接”—>“属性”—>选择“Internet协议”—>“属性”—>在常规里选择“使用下面的IP地址”—>在IP地址框中填入“192.168.10.2”(注:
实验中的IP地址范围为:
192.168.10.X,其中X为1-60,本实验中以192.168.10.1为例)—>子网掩码中填入“255.255.255.0”—>“默认网关”填入“192.168.10.254”—>选择“使用下面的DNS服务器地址”—>在“首选DNS服务器”框中填入“202.102.192.68”—>“确定”。
(注:
DNS服务器地址是在使用域名服务时才需要填写的,DNS是将计算机域名和IP地址进行转换,网关和DNS都是根据实际要求来填入地址,此实验中不填也可以)。
(2)点击“确定”。
3.计算机名的配置
在WIN2000Profession操作系统下,右键选择“我的电脑”—>“属性”—>选择“网络标识”—>“属性”—>在“计算机名”框中输入计算机名“user1”—>隶属于选“工作组”—>填“workgroup”—>“确定”。
4.ARP协议的测试
每台机器完成上述配置后,可进行如下测试。
(1)进入MS-DOS方式
点击“开始”—>“运行”,在对话框中填入“cmd”,点“确定”。
(2)在MS-DOS方式下执行如下命令:
arp–a
(3)在MS-DOS方式下执行如下命令:
(注:
192.168.10.2为另一台机器的IP地址)ping192.168.10.2,然后再用arp-a命令查看。
结果中的MAC地址为user2主机的地址,在user2主机上用ipconfig/all命令可以验证。
5.在“网上邻居“里查看其它的IP计算机
(1)双击“网上邻居”,双击“邻近的计算机”就能看到在同一工作组里的其它计算机。
(2)双击“我的电脑”,在某一个盘符或某一个文件夹上右击“属性”,点选“共享”选项卡,点击“共享该文件夹”,这样别的主机就可以共享你的资源。
四、截图
再次ARP–a后
5、设计总结和体会
此次实验我与吴佩同学共同完成,利用实验室的计算机进行局域网的实验。
能在windowsxp下进行IP地址的手工设定,也能利用dos界面熟练使用ping等常用网络命令。
熟悉了解IP地址以及IP地址寻址方式。
知道并认识常见网络设备,对计算机网络的实际操作部分有了深入的了解。
6、思考题
1.如果test1与test2要等待多长时间不进行通讯,才能使ARPcache为空?
一般来说,路由器交换机上缺省是20分钟,PC机上5分钟,具体数值可调。
2.如果test1的IP地址改为:
192.168.10.9/28,那么test2的IP地址要如何设置才能与test1正常通讯?
应该确定两个主机都在同一个子网中,才能通信。
另外,在更改了子网后,应该注意更改其子网掩码。
实验二WWW服务器、FTP服务器的构建
1、实验目的
了解Web服务器和FTP服务器的安装以及配置
2、所用软件环境或工具
Windows7操作系统、IIS服务器
3、步骤
(1)利用IIS安装WWW服务器和FTP服务器
(2)在浏览器中打开http:
//127.0.0.1,查看是否安装成功
(3)在DOS界面下利用FTP127.0.0.1来查看是否安装成功
(4)新建一个WWW服务器站点
(5)新建一个FTP服务器站点
(6)对两个站点进行配置
●截图
5、设计总结和体会
通过本次实验,了解了服务器的运行方式。
能利用IIS对web服务器和FTP服务器来进行安装和配置。
并且能利用浏览器和dos下的操作指令来验证是否安装成功。
本次实验让我对计算机网络在实际生活中的应用有了很大的了解。
6、思考题
(1)在同一个PC上能否同时安装Apache和IIS,如何设置使得其共存?
apache可以和iis共存,但必须的修改端口号。
具体步骤是:
1.在tomcat\bin\下建立iis资料夹,将isapi_redirector.dll档案复制到这里。
2.激活IIS服务管理员,点选你的WEB站台按右键,选「内容」。
3.点选「ISAPI筛选器」→新增,筛选器名称->输入「JakartaRedirector」,执行文件->输入「C:
\tomcat\bin\iis\isapi_redirector.dll」(视你实际的位置而定),然后按确定。
4.点选你的WEB站点,按右键→新增→虚拟目录,别名输入jakarta,目录请指到C:
\tomcat\bin\iis,权限请选择「读取」、「执行指令文件」、「执行」三项。
5.建立一个名为iis_redirect.reg的文件,其内容如下:
REGEDIT4[HKEY_LOCAL_MACHINE\SOFTWARE\ApacheSoftwareFoundation\JakartaIsapiRedirector\1.0]"extension_uri"="/jakarta/isapi_redirector.dll""log_file"="C:
\\TOMCAT\\logs\\iis_redirect.log"
"log_level"="emerg""worker_file"="C:
\\tomcat\\conf\\worker.properties"
"worker_mount_file"="C:
\\tomcat\\conf\\uriworkermap.properties"
6.双击将文件内容导入注册表。
7.到tomcat\conf下,建立一个名为worker.properties的文件,其内容如下:
#************Beginworker.properties**************
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=ajp13
worker.tomcat_home=C:
\tomcat//指到你的tomcat目录
worker.java_home=C:
\jdk//指到你的java的目录
ps=\
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
#************Endworker.properties**************
8.到tomcat\conf下,建立一个名为uriworkermap.properties的文件,其内容如下:
#************Beginuriworkermap.properties**************
default.worker=ajp13
/manager=$(default.worker)
/manager/*=$(default.worker)
/examples=$(default.worker)
/examples/*=$(default.worker)
/tomcat-docs=$(default.worker)
/tomcat-docs/*=$(default.worker)
/webdav=$(default.worker)
/webdav/*=$(default.worker)
#以上的目录结构,视您webapps下的目录结构自行增减,
#例如webapps目录底下如果建立了一个news的资料夹,
#那么上面就得再加上
#/news=$(default.worker)
#/news/*=$(default.worker)
#************Enduriworkermap.properties**************
9.先将Tomcat关闭,再将IIS重新激活,再开启Tomcat。
10.10.测试是否已经结合,浏览器网址列输入http:
//localhost/examples/,如果看得到画面,恭喜你,你已经成功了
(2)如何设置IIS使得特定的站点或虚拟目录只能被指定的用户或者计算机访问?
在其中属性中设置访问的方式,可以添加用户名以及密码,使得只有知道密码的特定用户可以进行访问。
实验三串口通讯
1、实验目的
(1)理解串口通讯和RS-232协议的原理
(2)掌握RS-232串口的基本连接方法
(3)在Windows环境下,设计完成通过串口进行计算机通讯的程序设计。
(4)掌握ActiveX控件MSComm在VC编程中的使用。
2、所用软件环境或工具
PC机(一台)、虚拟串口端口、Windows7系统、Vc++6.0软件。
3、需求分析的简要描述
(1)使用串口驱动方式编写串口通讯程序的基本原理
MSComm控件是ActiveX控件的一种,通过串行端口传输和接收数据,为应用程序提供串行通讯功能。
MSComm控件可以较为方便的进行串口编程,程序员不必花时间去了解较为复杂的API函数,而且在VisualC++,VisualBasic,Delphi等语言中均可使用
事件驱动通讯是处理串行端口交互作用的一种非常有效的方法,在许多情况下,事件发生时需要得到通知。
例如,在串口接收缓冲区中有字符,或者CarrierDetec(CD)或RequestToSend(RTS)线上的一个字符到达或一个事件发生时。
在这些情况下,可以利用MSComm控件的OnComm事件捕获并处理这些通信事件。
OnComm事件还可以检查和处理通讯错误。
如果要了解所有通讯事件和通讯错误的列表,请参阅CommEvent属性。
在编程过程中就可以在OnComm事件处理函数中加入自己的处理代码。
这种方法的优点是程序响应及时,可靠性高。
每个MSComm控件对应着一个串行端口。
如果应用程序要访问多个串行端口,必须使用多个MSComm控件。
(2)程序涉及的功能函数简介
1)MSComm控件的InPut属性:
VARIANTGetInput;
InPut属性表示从接收缓冲区移走一串字符,将缓冲区中收到的数据读入变量,属性值为为Variant型变量。
该属性在端口未打开时不可用,在运行时是只读的。
2)InBufferCount属性:
VoidSetInBufferCount(shoutnNewValue):
shoutGetInBufferCount();
InBufferCount属性用于返回输入缓冲区的等待读取的字节个数,可以通过该属性值为0来清除接收缓冲区。
3)Settings属性
VoidSetSettings(LPCTSTRvalue);StringGetSettings();
该属性用于设置并返回数据传输速率,奇偶校验,数据比特,停止比特参数。
当端口打开时,如果value非法,则MSComm控件产生错误380(非法属性值)。
4、步骤
(1)创建空的MFC工程
首先打开VC环境,单击“文件”主菜单中的“新建”菜单项,在弹出的“新建”窗体中选择“工程”标签,在标签下的列表框中列出的应用程序类型中选择“MFCAppWizard”选项。
在右边的“工程”文本框中填写工程名JieShou,并在下面的对话框中指定相应的路径。
此时系统弹出“MFCWizardStep1”对话框,在可选的程序类型中选择“基本对话(Dialogbased),在其后弹出的3个窗体中,单击“下一步(next)”即可,直至完成。
至此,空的MFC工程建立完毕。
(2)添加MSComm控件
选择“Project->AddToProject->->ComponentsandControls”在菜单命令,会弹出图1.2所示的ComponentsandControlsGallery对话框。
用户可以在图1.3所示的·RegisteredActiveX文件夹中选中“MicosoftCommunicationsControlVersion6.0”选项,单击“Insert”按钮就可以完成添加MSComm控件的操作。
此时可以看到工具栏的左下部比原来多出MSComm控件,在左边的项目工作区中点击Resource选项卡,单击Dialog选项左边的+,在展开的项目中双击IDD_JIESHOU_DIALOG,在项目工作区右边出现已有两个按钮和一行文本的设计窗体,把MSComm控件移至设计窗体中,并修改控件的ID为ID_COMMCTRL。
再打开取消按钮的属性页,把它的ID改为IDC_CLEAR,标题改为“清屏”。
(3)设计窗体及相应变量和函数的设置
将edit控件的ID设置成IDC_RECEIVE,在菜单“查看”中选择“建立类向导”,打开MemberVaviables选项卡。
在ClassName中选择类CjieShouDlg,先在ControlIDs中双击ID_COMMCTRL,在弹出窗体的MemberVariablename下为此控件命名为m_Com,类型为Control;如图1.6所示,类似的,再在ControlIDs中双击IDC_RECEIVE,在弹出窗体的MemberVariablename下为此控件命名为m_Jieshou,类型为Cstring。
打开MemberVaviables选项卡左边的MessageMaps选项卡,在objectIDs中选择IDC_CLEAR,在Messages下的文本框中双击BN_CLICKED,在弹出的对话框中将清屏按钮的对应函数命名为OnClear,再在objectIDs中选择ID_COMMCTRL,在Messages下的文本框中双击OnComm,在弹出的对话框中将MSComm控件的对应函数命名为OnComm,如图1.7所示,在此函数中将完成发送信息的功能。
在项目工作区中选择ClassView选项卡,单击打开CjieShouDlg类,在函数OnInitDialog()中完成MSComm控件的初始化。
(5)接收字符(即串口信息捕捉)的功能是由函数OnComm()完成的。
在项目工作区中选中ClassView选项卡,找到CJieShouDlg类,在CJieShouDlg类中双击OnComm()函数
5、截图
六、程序清单(核心代码)
voidCJieShouDlg:
:
OnComm()
{
VARIANThuiying;
char*string;
char*qinchustring;
intk,nEvent,i;
nEvent=m_Com.GetCommEvent();
if(nEvent==2)
{
k=m_Com.GetInBufferCount();
if(k>0)
{
huiying=m_Com.huiying=m_Com.GetInput();
string=(char*)(unsignedchar*)huiying.parray->pvData;
}
i=0;
qinchustring=string;
while(i{
i++;
qinchustring++;
}
*qinchustring='\0';
m_Jieshou=(constchar*)string;
UpdateData(FALSE);
}
}
voidCJieShouDlg:
:
OnClear()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_Jieshou.Empty();
UpdateData(FALSE);
}
BOOLCJieShoulDlg:
:
OnInitDialog()
{
……
SetIcon(m_hIcon,FALSE);//在此后添加代码
m_Com.SetCommPort
(1);
m_Com.SetInBufferSize(1024);//设置输入缓冲区的大小,Bytes
m_Com.SetOutBufferSize(512);//设置输出缓冲区的大小,Bytes
if(!
m_Com.GetPortOpen())//打开串口
m_Com.SetPortOpen(TRUE);
m_Com.SetInputMode
(1);//设置输入方式为二进制方式
m_Com.SetSettings("9600,n,8,1");//设置波特率等参数
m_Com.SetRThreshold
(1);
m_Com.SetInputLen(0);
/*结束添加*/
returnTRUE;
}
7、设计总结和体会
本次实验不仅是软件上的知识,我也学到了很多硬件方面的知识。
在为了方便程序的调试,采用了网上的一些软件来辅助。
能熟练使用MFC搭建平台,并利用控件完成实验所需要求。
在使用控件的时候,发现win7并不是很兼容,需要对硬件进行注册,还要注意64位和32位的系统,其控件文件所在目录不同。
除此之外,我还能在MFC下调用一些封装的函数较快较好的完成实验。
8、思考题
1.Update(True)和Update(False)分别表达什么功能有何区别?
UpdateDate()的参数默认为true。
当数据从界面到程序时用UpdateDate()()或UpdateDate()(true)。
当数据从程序到界面时用UpdateDate(false)。
2.在接收端程序中m_Com.SetRThreshold
(1)的“1”代表什么,能否改成其它值?
其中m_Com是一个关联变量,与控件相关联。
1表示大于等于1个字符则触发OnComm,改为其他的值时,则不能单独传输1个字符。
实验四3.2端口扫描工具的设计与实现
1、设计任务和要求
(1)实现一个功能比较简单的、具有图形界面的端口扫描工具,主线程响应用户界面操作,工作线程完成端口扫描等工作;
(2)能够扫描指定IP地址的主机/服务器开放了哪些端口;
(3)能够扫描指定IP地址范围内的哪些主机/服务器开放了特定端口,如常见的TCP端口FTP(21)、SMTP(25),UDP端口DNS(53)、SNMP(161);
(4)扫描动作要具有一定的隐蔽性和效率。
二、所用软件环境或工具
Windows7操作系统、VC++6.0
3、需求分析的简要描述
(1)采用向端口发送connect包的方法,来记录开放的端口
(2)为了提高速度,采用多线程的方式。
每个端口开放一个线程进行扫描,为了不影响性能,最多有200个线程共同进行。
(3)在扫描IP段的时候,为每个IP地址的不同端口都开放线程,提高速度。
4、主要函数
(1)启动扫描函数voidCPortscan20112914Dlg:
:
OnScan()
(2)消息响应函数voidCPortscan20112914Dlg:
:
OnScanThread(WPARAMwParam,LPARAMlParam)
(3)建立线程DWORDWINAPIStartScan(LPVOIDlpParam)
(4)扫描程序DWORDWINAPIDoScanPort(LPVOIDlpParam)
(5)获取IP地址boolIsIpString(constchar*pszHostOrIp)
5、截图
6、程序清单(核心代码)
启动扫描函数
voidCPortscan20112914Dlg:
:
OnScan()
{
UpdateData();
//TODO:
Addyourcontrolnotificationhandlercodehere
if(m_hThread==NULL&&m_iss==false)
{
UpdateData();
if((g_ulAddr=GetAddr(m_IP))==INADDR_NONE)
{
AfxMessageBox("无法找到主机");
return;
}
m_nHasComplete=0;
m_dwPercentSeconds=0;
m_pProgressCtrl->SetPos(0);//进度条控制
m_hParentTree=m_ctrResultTree.InsertItem(m_IP+CTime:
:
GetCurrentTime().Format("--水水-扫描时间%H:
%M:
%S"));
g_bTerminate=false;
g_hWnd=m_hWnd;
g_nMaxThread=m_nMaxThread;
g_nThreadCount=0;
g_iss=m_iss;
tag_PORTS*pScanParam=newtag_PORTS;
pScanParam->iStartPort=m_iStartPort;
pScanParam->iEndPort=m_iEndPort;
m_pProgressCtrl->SetRange(0,m_iEndPort-m_iStartPort+1);
DWORDdwThreadId;
m_hThread=CreateThread(NULL,0,StartScan,(LPVOID)pScanParam,0,&dwThreadId);
m_ctrBeginScan.SetWindowText("结束扫描");
SetTimer(1,100,NULL);
}
else
{
UpdateData();
CStringtem;
for(inti=0,j=1;i{
while(g_nThreadCount!
=0)Sleep(33);
tem=m_IP.Right
(2);
AfxMessageBox(tem);
intip;
ip=_ttoi(tem);
ip++;
m_IP.TrimRight(tem);
tem.Format