




已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
網(wǎng) 絡(luò) 程 序 設(shè) 計實驗報告 實驗名稱:Winsock編程接口實驗 實驗類型: 驗 證 型 一、實驗?zāi)康膌 掌握Winsock的啟動和初始化;l 掌握gethostname(),gethostbyname(),GetAdaptersInfo()等信息查詢函數(shù)的使用。二、實驗設(shè)計實驗內(nèi)容:1、編寫程序能同時實現(xiàn)對多個域名的解析。比如在控制臺輸入:getip , 能輸出和 對應(yīng)的IP地址列表。2、編寫程序獲取并輸出本地主機(jī)的所有適配器的IP地址,子網(wǎng)掩碼,默認(rèn)網(wǎng)關(guān),MAC地址。根據(jù)實驗內(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;三、實驗過程(包含實驗結(jié)果)1、分析題目,編寫程序;2、將編寫的程序進(jìn)行編譯、運行,輸入題目給定的內(nèi)容,完成題目要求;結(jié)果如下: 第1題: 第2題: 四、討論與分析 思考題: 1、Winsock初始化的作用:只有調(diào)用了WSAStartup()進(jìn)行初始化之后,應(yīng)用程序才能調(diào)用其他Windows Sockets API函數(shù),實現(xiàn)網(wǎng)絡(luò)通信; 2、函數(shù)原型為:DWORD GetAdaptersInfo( PIP_ADAPTER_INFO pAdapterInfo, /接受數(shù)據(jù)的緩沖區(qū) PULONG pOutBufLen / 數(shù)據(jù)的長度大小); 3、域名解析時出現(xiàn)域名對應(yīng)多個IP,原因:該域名存在于多個服務(wù)器。 五、實驗者自評 通過本次實驗,我掌握了Winsock的啟動和初始化以及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的實際大小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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 空氣動力學(xué)與飛行原理 課件 4.4.2 穩(wěn)定性
- 病毒肺炎相關(guān)知識健康教育知識vip
- 臨潭縣第一中學(xué)2024-2025學(xué)年度第二學(xué)期高二語文期中考試試卷
- 河南省鄭州市新鄭市2024-2025學(xué)年七年級下學(xué)期6月期末考試生物試卷(無答案)
- 巡講活動進(jìn)我縣活動方案
- 小學(xué)除夕活動方案
- 展會英語沙龍活動方案
- 工程公司三創(chuàng)三增活動方案
- 小學(xué)防疫特色活動方案
- 工會開展電影活動方案
- 拌合站生產(chǎn)性試驗成果報告
- SMT拋料改善報告課件
- 泗水眾合口腔門診部急救知識考試附有答案附有答案
- 路基路面工程瀝青路面課程設(shè)計
- 美國AHA心肺復(fù)蘇指南
- 水資源規(guī)劃及利用智慧樹知到答案章節(jié)測試2023年長春工程學(xué)院
- HAND-成本模塊:移動平均成本-系統(tǒng)操作
- 中醫(yī)養(yǎng)生夏季養(yǎng)生知識科普講座PPT教學(xué)課件
- GB/T 32893-201610 kV及以上電力用戶變電站運行管理規(guī)范
- GB 17681-1999易燃易爆罐區(qū)安全監(jiān)控預(yù)警系統(tǒng)驗收技術(shù)要求
- 魚骨圖分析方法及培訓(xùn)課件
評論
0/150
提交評論