




已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
網(wǎng) 絡(luò) 程 序 設(shè) 計(jì)實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)名稱:Winsock編程接口實(shí)驗(yàn) 實(shí)驗(yàn)類型: 驗(yàn) 證 型 一、實(shí)驗(yàn)?zāi)康膌 掌握Winsock的啟動(dòng)和初始化;l 掌握gethostname(),gethostbyname(),GetAdaptersInfo()等信息查詢函數(shù)的使用。二、實(shí)驗(yàn)設(shè)計(jì)實(shí)驗(yàn)內(nèi)容:1、編寫程序能同時(shí)實(shí)現(xiàn)對多個(gè)域名的解析。比如在控制臺輸入:getip , 能輸出和 對應(yīng)的IP地址列表。2、編寫程序獲取并輸出本地主機(jī)的所有適配器的IP地址,子網(wǎng)掩碼,默認(rèn)網(wǎng)關(guān),MAC地址。根據(jù)實(shí)驗(yàn)內(nèi)容編寫程序: 1、對相關(guān)域名進(jìn)行解析,利用gethostbyname()完成解析,用到的結(jié)構(gòu)體為: struct hostentchar FAR*h_name;char FAR* FAR*h_aliases;short h_addrtype;short h_length;char FAR* FAR*h_addr_list; 得到的IP地址列表由h_addr_list存儲; 2、利用GetAdaptersInfo()函數(shù)獲得本地主機(jī)的相關(guān)信息,通過IP_ADAPTER_INFO結(jié)構(gòu)體返回所需信息。IP_ADAPTER_INFO的定義如下:typedef struct _IP_ADAPTER_INFO struct _IP_ADAPTER_INFO* Next; DWORD ComboIndex; char AdapterNameMAX_ADAPTER_NAME_LENGTH + 4; char DescriptionMAX_ADAPTER_DESCRIPTION_LENGTH + 4; UINT AddressLength; BYTE AddressMAX_ADAPTER_ADDRESS_LENGTH; DWORD Index; UINT Type; UINT DhcpEnabled; PIP_ADDR_STRING CurrentIpAddress; IP_ADDR_STRING IpAddressList; IP_ADDR_STRING GatewayList; IP_ADDR_STRING DhcpServer; BOOL HaveWins; IP_ADDR_STRING PrimaryWinsServer; IP_ADDR_STRING SecondaryWinsServer; time_t LeaseObtained; time_t LeaseExpires; IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;三、實(shí)驗(yàn)過程(包含實(shí)驗(yàn)結(jié)果)1、分析題目,編寫程序;2、將編寫的程序進(jìn)行編譯、運(yùn)行,輸入題目給定的內(nèi)容,完成題目要求;結(jié)果如下: 第1題: 第2題: 四、討論與分析 思考題: 1、Winsock初始化的作用:只有調(diào)用了WSAStartup()進(jìn)行初始化之后,應(yīng)用程序才能調(diào)用其他Windows Sockets API函數(shù),實(shí)現(xiàn)網(wǎng)絡(luò)通信; 2、函數(shù)原型為:DWORD GetAdaptersInfo( PIP_ADAPTER_INFO pAdapterInfo, /接受數(shù)據(jù)的緩沖區(qū) PULONG pOutBufLen / 數(shù)據(jù)的長度大小); 3、域名解析時(shí)出現(xiàn)域名對應(yīng)多個(gè)IP,原因:該域名存在于多個(gè)服務(wù)器。 五、實(shí)驗(yàn)者自評 通過本次實(shí)驗(yàn),我掌握了Winsock的啟動(dòng)和初始化以及gethostname(),gethostbyname(),GetAdaptersInfo()等函數(shù)查詢的使用,加深了以前對課本知識的認(rèn)識程度。6、 附錄:關(guān)鍵代碼(給出適當(dāng)注釋,可讀性高) 第1題代碼: / GetAllIps.cpp文件/#include ./common/InitSock.h#include #include #include using namespace std;#pragma comment(lib, WS2_32)/ 鏈接到WS2_32.lib/CInitSock initSock;/ 初始化Winsock庫void main()char szMessage256; / 取得本地主機(jī)名稱/ 初始化WSADATA wsaData;if(WSAStartup(MAKEWORD(2,2), &wsaData) != 0) exit(0);/ 通過主機(jī)名得到地址信息printf( Get IP::);gets(szMessage);/ 獲取主機(jī)信息hostent *pHost = :gethostbyname(szMessage);/ 打印出所有IP地址in_addr addr;for(int i = 0; ; i+)char *p = pHost-h_addr_listi;if(p = NULL)break;memcpy(&addr.S_un.S_addr, p, pHost-h_length);char *szIp = :inet_ntoa(addr);printf( 服務(wù)器 %s IP地址:%s n ,szMessage, szIp);printf(服務(wù)器名字: %s n,pHost-h_name );/:WSACleanup();第2題代碼:/ 獲取并輸出本地主機(jī)的所有適配器的IP地址,子網(wǎng)掩碼,默認(rèn)網(wǎng)關(guān),MAC地址#include #include using namespace std;#include #pragma comment(lib, IPHLPAPI.lib)void main()/ 定義變量IP_ADAPTER_INFO *pAdapterInfo;ULONG ulOutBufLen;DWORD dwRetVal;PIP_ADAPTER_INFO pAdapter;pAdapterInfo = (IP_ADAPTER_INFO *)malloc(sizeof(IP_ADAPTER_INFO);ulOutBufLen = sizeof(IP_ADAPTER_INFO);/ 第一次獲取適配器信息,得到ulOutBufLen的實(shí)際大小if(GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) != ERROR_SUCCESS)free(pAdapterInfo);pAdapterInfo = (IP_ADAPTER_INFO *)malloc(ulOutBufLen);/ 第二次獲取適配器信息,獲得了pAdapterInfo信息if(dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) != ERROR_SUCCESS)coutGetAdapterInfo Error!dwRetValendl;/ 打印MAC地址信息、子網(wǎng)掩碼以及網(wǎng)關(guān)pAdapter = pAdapterInfo;while(pAdapter)coutMAC Address: ;for(int i=0; iAddressLength; i+)if(i = (pAdapter-AddressLength - 1)couthexAddressi;elsecouthexAddressi-;coutendl;coutIP 地址:IpAddressList.IpAddress.Stringend
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 外貿(mào)英語函電全套課件教學(xué)
- 2023-2024學(xué)年廣西桂林、北海聯(lián)考高二下學(xué)期4月期中考試語文試題(解析版)
- 探秘大雪節(jié)氣
- 塑造未來:初二學(xué)習(xí)規(guī)劃
- 碩士之路指南
- 內(nèi)蒙古民族幼兒師范高等專科學(xué)?!渡镝t(yī)學(xué)檢驗(yàn)儀器》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津工程職業(yè)技術(shù)學(xué)院《兒童發(fā)展教育原理》2023-2024學(xué)年第一學(xué)期期末試卷
- 山東省煙臺市重點(diǎn)名校2025屆普通高中質(zhì)量檢測試題(二)物理試題含解析
- 三門峽市澠池縣2025屆四年級數(shù)學(xué)第二學(xué)期期末調(diào)研模擬試題含解析
- 山西工商學(xué)院《介入放射基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 小學(xué)勞動(dòng) 包餃子課件
- 核電工程質(zhì)量保證知識培訓(xùn)教材課件
- 區(qū)級綜合醫(yī)院關(guān)于落實(shí)區(qū)領(lǐng)導(dǎo)干部醫(yī)療保健工作實(shí)施方案
- 顏色標(biāo)準(zhǔn)LAB值對照表
- 新教材人教版高中化學(xué)選擇性必修3第一章有機(jī)化合物的結(jié)構(gòu)特點(diǎn)與研究方法學(xué)案(知識點(diǎn)考點(diǎn)匯總及配套習(xí)題)
- 后廚主管月度績效考核表(KPI)
- 功能飲料項(xiàng)目投資計(jì)劃書(模板范文)
- 小學(xué)六年級數(shù)學(xué)應(yīng)用題易錯(cuò)題練習(xí)
- IACSURS26 中文
- 中層干部360度考核測評表(共4頁)
- 談院系兩級管理體制下實(shí)驗(yàn)中心與教研室的關(guān)系
評論
0/150
提交評論