freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)-基于icmptcp的網(wǎng)段端口掃描-c語言編寫-文庫吧資料

2025-07-02 07:23本頁面
  

【正文】 主機(jī)不可達(dá)// 3 3 端口不可達(dá)// 8 0 請求回顯//初始化winsock動態(tài)鏈接庫void InitializeWinsock(){ int status。 //記錄主機(jī)信息struct sockaddr_in dest。include include include include include pragma ment(lib,)。 //序列號 unsigned long icmp_timestamp。 //檢驗(yàn)和 unsigned short icmp_id。 //類型 unsigned char icmp_code。 // 目標(biāo)IP地址}IP_HDR,*PIP_HDR。 // 校驗(yàn)和 unsigned long ipSource。 // 生存時(shí)間,就是TTL unsigned char ipProtocol。 // 封包標(biāo)識,惟一標(biāo)識發(fā)送的每一個(gè)數(shù)據(jù)報(bào) unsigned short ipFlags。 // 服務(wù)類型 unsigned short ipLength。 參考文獻(xiàn) 參考書目[1] Stevens,Bill Fenner,Andrew . Unix Network Programming Volume1:The Sockets Networking API,Third Edition. Pearson Education,2010[2] Wnthony Jones,Jim Ohlund. Network Programming for Microsoft Windows,Second Press,2002[3] (第四版).電子工業(yè)出版社,2003[4] 周鳴爭,嚴(yán)楠,2011 引用網(wǎng)址(v=).aspx(v=).aspx源代碼Scanner,h//IP首部typedef struct ip_hdr{ unsigned char iphVerLen。以前學(xué)習(xí)總是停留在紙面上理論上,雖然貌似一些概念是清楚了,但是這樣的記憶是不長久的。理解原始套接字的運(yùn)行機(jī)制,加深一些協(xié)議字段的理解。以下是主要的ERROR CODE:WSAETIMEDOUT10060Connection timed out.A connection attempt failed because the connected party did not properly respond after a period of time, or the established connection failed because the connected host has failed to respond.WSAECONNREFUSED10061Connection refused.No connection could be made because the target puter actively refused it. This usually results from trying to connect to a service that is inactive on the foreign host—that is, one with no server application running.WSAELOOP10062Cannot translate name.Cannot translate a name.摘自:(v=).aspx 總結(jié)與體會 程序調(diào)試與運(yùn)行程序主界面IP網(wǎng)段掃描端口掃描 體會通過本次的課程設(shè)計(jì)加深了本人對TCP/IP協(xié)議特別是網(wǎng)絡(luò)層協(xié)議,IP首部格式,ICMP首部格式的理解。)循環(huán)對給定的主機(jī)的端口區(qū)間掃描。 //關(guān)閉Socket,回收資源 //WSACleanup()。 exit(EXIT_FAILURE)。 } else //連接成功 { printf(%s\t%d\tPORT OPEN\n , hostname ,i)。 break。 break。 break。dest , sizeof dest)。 } //主機(jī)字節(jié)序轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)序 = htons(i)。 //創(chuàng)建一個(gè)Socket if(sock==INVALID_SOCKET) { printf(Create socket failed: %d\n,WSAGetLastError())。 i= endport 。)循環(huán),對確定的起始和終止IP地址的內(nèi)的所有可能存在的主機(jī)發(fā)送,請求回顯的ICMP報(bào)文,并對返回的ICMP報(bào)文進(jìn)行分析,提取出type和code字段,根據(jù)ICMP報(bào)文格式所定義的數(shù)值,對各個(gè)主機(jī)判斷,并打印信息。 //關(guān)閉Socket,回收資源 //WSACleanup()。 exit(EXIT_FAILURE)。 } else //連接成功 { printf(%s\t%d\tPORT OPEN\n , hostname ,i)。 break。 break。 break。dest , sizeof dest)。 } //主機(jī)字節(jié)序轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)序 = htons(i)。 //創(chuàng)建一個(gè)Socket if(sock==INVALID_SOCKET) { printf(Create socket failed: %d\n,WSAGetLastError())。 i= endport 。該函數(shù)實(shí)現(xiàn)了首部的檢驗(yàn)和計(jì)算。 return (USHORT)(~cksum)。 0xffff)。 } if (size) { cksum += *(UCHAR*)buffer。 while (size 1) { cksum += *buffer++。則就會調(diào)用相應(yīng)的inet_addr()函數(shù),否則調(diào)用gethostbyname(),在寫入地址字段。 }}根據(jù)用戶輸入地址字符串轉(zhuǎn)化成相應(yīng)的地址字段。\n)。\n)。 , (char *)hosth_addr_list[0] , sizeof )。 } else if( (host=gethostbyname(hostname)) != 0)//判斷所給主機(jī)名是否與host中的一致 { //printf(執(zhí)行g(shù)ethostbyname()...\n)。 = inet_addr(hostname)。這樣賦值后,就把ICMP報(bào)文設(shè)置成ICMP詢問報(bào)文,回送請求和回答。其中比較重要的語句有  icmp_hdricmp_type = ICMP_ECHO_REQUEST_TYPE。, 32)。buff[sizeof(ICMP_HDR)], 39。 icmp_hdricmp_timestamp= GetTickCount()。 icmp_hdricmp_checksum = 0。 // 請求回顯 icmp_hdricmp_code = ICMP_ECHO_REQUEST_CODE。 初始化ICMP首部void InitIcmpHeader(ICMP_HDR* icmp_hdr){ char buff[sizeof(ICMP_HDR) + 32]。 exit(EXIT_FAILURE)。 if (status=WSAStartup(MAKEWORD(2,2),amp。 函數(shù)實(shí)現(xiàn) 初始化winsock動態(tài)鏈接庫void InitializeWinsock(){ int status。在利用Winsock編寫原始套接字時(shí)要注意程序應(yīng)該取得管理員權(quán)限,因?yàn)榇蠖鄶?shù)操作系統(tǒng)對原始套接字的創(chuàng)建有較為嚴(yán)格的限制。v 有了原始套接字,進(jìn)程還可以使用IP_HDRINCL套接字選項(xiàng)自行構(gòu)造IPv4首部。舉例來說ping程序就是使用原始套接字收發(fā)ICMP分組,網(wǎng)段掃描也是基于這個(gè)原理。原始套接字提供普通的TCP和UDP套接字所不提供的一下3個(gè)功能。結(jié)合原始套接字可以很方便做到將一個(gè)ICMP數(shù)據(jù)包封裝到IP數(shù)據(jù)包中,以及從一個(gè)IP數(shù)據(jù)報(bào)中解析出包含ICMP報(bào)文。函數(shù)原型分別為:sendto functionint sendto( _In_ SOCKET s, _In_ const char *buf, _In_ int len, _In_ int flags, _In_ const struct sockaddr *to, _In_ int tolen)。ICMP的詢問報(bào)文主要有4種:(1) 回送請求和回答(Ping)(2) 時(shí)間戳和回答(常用來記錄一個(gè)主機(jī)到另一個(gè)主機(jī)的延遲)(3) 掩碼請求和回答(4) 路由詢問和回答同樣,主要利用(1)和(2)兩種報(bào)文。(3) 時(shí)間超時(shí) 當(dāng)路由器手打生存時(shí)間為零的數(shù)據(jù)包時(shí),除丟棄該數(shù)據(jù)報(bào)外,還向源站發(fā)送時(shí)間超過報(bào)文。ICMP的差錯(cuò)報(bào)文共有5種:(1) 終點(diǎn)不可達(dá) 終點(diǎn)不可達(dá)分為:網(wǎng)絡(luò)不可達(dá),主機(jī)不可達(dá),協(xié)議不可達(dá),端口不可達(dá)。對網(wǎng)段的主機(jī)掃描就是利用了這三個(gè)字段。ICMP報(bào)文的種類有兩種,即ICMP差錯(cuò)報(bào)告報(bào)文和ICMP詢問報(bào)文。ICMP允許主機(jī)或路由器報(bào)告差錯(cuò)情況和提供有關(guān)異常情況的報(bào)告。利用此函數(shù),可以非常方便的連接一個(gè)套接字。一下是函數(shù)原型:connect functi
點(diǎn)擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1