DNS協(xié)議模擬實(shí)現(xiàn)_第1頁
DNS協(xié)議模擬實(shí)現(xiàn)_第2頁
DNS協(xié)議模擬實(shí)現(xiàn)_第3頁
DNS協(xié)議模擬實(shí)現(xiàn)_第4頁
DNS協(xié)議模擬實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

網(wǎng)絡(luò)操作系統(tǒng)》課程設(shè)計(jì)報(bào)告書題目: DNS協(xié)議模擬實(shí)現(xiàn)學(xué)號(hào): 學(xué)生姓名: 指導(dǎo)教師:目錄TOC\o"1-5"\h\z\o"CurrentDocument"實(shí)驗(yàn)內(nèi)容 3\o"CurrentDocument"實(shí)驗(yàn)?zāi)康?4數(shù)據(jù)結(jié)構(gòu)說明 4算法流程圖 5\o"CurrentDocument"程序清單 5\o"CurrentDocument"使用說明 7總結(jié) 9一、實(shí)驗(yàn)內(nèi)容設(shè)計(jì)一個(gè)簡(jiǎn)單的Winsock網(wǎng)絡(luò)程序,模擬UDP數(shù)據(jù)報(bào),加深對(duì)DNS作用的理解。按照以下步驟完成該練習(xí):1、 啟動(dòng)VisualC++,進(jìn)入集成開發(fā)環(huán)境;2、 建立一個(gè)"Win32ConsoleApplication"類型的工程,工程名自擬;3、 在該工程下,新建一個(gè)源程序文件,即選擇“C++SourceFile",文件名自擬;4、 輸入以下源程序/////////////////////////////////////////////本程序的功能為://〃⑴獲取本機(jī)名(gethostname()函數(shù))//〃(2)獲得給定主機(jī)名的IP地址(gethostbyname()函數(shù))////(3)獲得給定IP地址的主機(jī)名(gethostbyaddr()函數(shù))//////////////////////////////////////////頭文件//#include<winsock.h>#include<stdio.h>#include<string.h>#pragmacomment(lib,”ws2_32」ib”)//主文件//intmain(){WORDwVersionRequested=MAKEWORD(1,1);WSADATAwsaData;//初始化windowssocketsAPI//if(WSAStartup(wVersionRequested,&wsaData)){printf("WSAStartupfailed%s\n",WSAGetLastError());return-1;}charhostname[256];〃獲得本主機(jī)名//intres=gethostname(hostname,sizeof(hostname));if(res!=O){〃錯(cuò)誤處理//printf("Error:%u\n",WSAGetLastError());return-1;}printf("本主機(jī)名為:%s\n”,hostname);〃打印本主機(jī)名字〃printf("請(qǐng)輸入一個(gè)主機(jī)域名:”);〃輸入一個(gè)主機(jī)的域名//scanf(”%s”,hostname);//利用主機(jī)名獲得主機(jī)的地址//hostent*pHostent=gethostbyname(hostname);if(pHostent==NULL){〃錯(cuò)誤處理〃printf("Error:%u\n",WSAGetLastError());return-1;//解析返回的主機(jī)地址信息:別名、地址類型、地址長度,并打印//hostent&he=*pHostent;printf("name=%s\naliase=%s\naddrtype=%d\nlength=%d\n",he.h_name,he.h_aliases,he.h_addrtype,he.h_length);sockaddr_insa;〃打印主機(jī)每一個(gè)網(wǎng)卡的IP地址〃for(intnAdapter=0;he.h_addr_list[nAdapter];nAdapter++){memcpy(&sa.sin_addr.s_addr,he.h_addr_list[nAdapter],he.h_length);printf("Address:%s\n",inet_ntoa(sa.sin_addr));}//顯示lP地址//printf("\n");unsignedlongaddr;charhostaddr[50];printf("請(qǐng)輸人服務(wù)器IP地址:");〃輸入一個(gè)服務(wù)器的IP地址〃scanf("%s",hostaddr);addr=inet_addr(hostaddr);//將lP地址轉(zhuǎn)化為網(wǎng)絡(luò)字節(jié)序//pHostent=gethostbyaddr((char*)&addr,4,AF_INET);〃利用IP地址獲得主機(jī)名人〃if(pHostent=NULL){〃錯(cuò)誤處理〃printf("Error:%u\n",WSAGetLastError());return-1;}hostent&hel=*pHostent;printf("主機(jī)名為;%s\naliases=%s\naddrtype=%d\nlength=%d\n”,he.h_name,he.h_aliases,he.h_addrtype,he.h_length);//打印返回的主機(jī)信息//WSACleanup();〃結(jié)束windowssocketsAPI//return0;}5、編譯,連接并運(yùn)行程序6、觀察程序運(yùn)行的結(jié)果,體會(huì)程序中幾個(gè)重要函數(shù)的作用二、實(shí)驗(yàn)?zāi)康脑O(shè)計(jì)一個(gè)簡(jiǎn)單的Winsock網(wǎng)絡(luò)程序,模擬UDP數(shù)據(jù)報(bào),加深對(duì)DNS作用的理解DNS協(xié)議為應(yīng)用層協(xié)議,可實(shí)現(xiàn)IP地址和主機(jī)名之間的轉(zhuǎn)換。三、數(shù)據(jù)結(jié)構(gòu)的說明WSADATAwsaData;//初始化windowssocketsAPI//

charhostname[256]; //獲得本主機(jī)名//intres; //錯(cuò)誤處理sockaddr_insa;//打印主機(jī)每一個(gè)網(wǎng)卡的IP地址//charhostaddr[50];//服務(wù)器IP地址五、程序清單#include<winsock.h>#include<stdio.h>#include<string.h>#pragmacomment(lib,"ws2_32.lib")intmain(){WORDwVersionRequested=MAKEWORD(1,1);WSADATAwsaData;//初始化windowssocketsAPI//if(WSAStartup(wVersionRequested,&wsaData)){printf("WSAStartupfailed%s\n",WSAGetLastError());return-1;}charhostname[256];〃獲得本主機(jī)名//intres=gethostname(hostname,sizeof(hostname));if(res!=0){〃錯(cuò)誤處理//printf("Error:%u\n",WSAGetLastError());return-1;}printf("本主機(jī)名為:%s\n”,hostname);〃打印本主機(jī)名字〃printf("請(qǐng)輸入一個(gè)主機(jī)域名:”);〃輸入一個(gè)主機(jī)的域名〃scanf(”%s”,hostname);//利用主機(jī)名獲得主機(jī)的地址//hostent*pHostent=gethostbyname(hostname);if(pHostent==NULL){〃錯(cuò)誤處理〃printf("Error:%u\n",WSAGetLastError());return-1;}//解析返回的主機(jī)地址信息:別名、地址類型、地址長度,并打印//hostent&he=*pHostent;printf("name=%s\naliase=%s\naddrtype=%d\nlength=%d\n",he.h_name,he.h_aliases,he.h_addrtype,he.h_length);sockaddr_insa;//打印主機(jī)每一個(gè)網(wǎng)卡的IP地址〃for(intnAdapter=0;he.h_addr_list[nAdapter];nAdapter++){memcpy(&sa.sin_addr.s_addr,he.h_addr_list[nAdapter],he.h_length);printf("Address:%s\n",inet_ntoa(sa.sin_addr));}//顯示lP地址//printf("\n");unsignedlongaddr;charhostaddr[50];printf("請(qǐng)輸人服務(wù)器IP地址:");〃輸入一個(gè)服務(wù)器的IP地址〃scanf("%s",hostaddr);addr=inet_addr(hostaddr);//將lP地址轉(zhuǎn)化為網(wǎng)絡(luò)字節(jié)序//pHostent=gethostbyaddr((char*)&addr,4,AF_INET);//利用IP地址獲得主機(jī)名人//if(pHostent=NULL){〃錯(cuò)誤處理〃printf("Error:%u\n",WSAGetLastError());return-1;}hostent&hel=*pHostent;

printf("主機(jī)名為;%s\naliases=%s\naddrtype=%d\nlength=%d\n”,he.h_name,he.h_aliases,he.h_addrtype,he.h_length);//打印返回的主機(jī)信息//WSACleanup();〃結(jié)束windowssocketsAPI//return0;}六、使用說明1、運(yùn)行程序,輸入主機(jī)域名結(jié)果如下'E:譚程設(shè)計(jì)-網(wǎng)絡(luò)接作案執(zhí)尚衛(wèi)靈\DNS怖儀模瑕實(shí)現(xiàn)詣hang\Debug\Sha11g.exe”誹主機(jī)名為:£hang-PG”青輸人一個(gè)主和金名:Shang-PCname=Shang-PCaliase=addrtype=2length=4Address:192-168.1.101;青輸入服務(wù)器IP地址:2、輸入服務(wù)器IP地址、E:僚程設(shè)計(jì)-網(wǎng)結(jié)握作至瓠尚P^\DN渤'收詩-壊現(xiàn)\Shang\Debug\&hang.exeF本主機(jī)名為「Sh吧曠PC請(qǐng)輸:A-個(gè)王機(jī)域名;Shang-PCname=Shang-PCaliase=addrtype=2length=4Address:192.iLES.l.101請(qǐng)輸:A服務(wù)器ip地址:3、輸入IP地址實(shí)現(xiàn)IP地址與主機(jī)名的轉(zhuǎn)換,結(jié)果如下:

本主機(jī)名為:Sh吧曠PC清輸以一個(gè)主機(jī)域名:Shang-PCname=Shang-PCaliase=本主機(jī)名為:Sh吧曠PC清輸以一個(gè)主機(jī)域名:Shang-PCname=Shang-PCaliase=addrtype=2length=4Address:192.168.1.101回艮勺=s入名se坍ia請(qǐng)王al務(wù)器I

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論