亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? scanner.c

?? 用c語言編寫的一款使用方便的 IP、端口掃描工具。利用它
?? C
字號:
#include <stdio.h> 
#include <winsock2.h> 
#include <time.h> 
#define iPort 80//目標Web Server端口 
.#define szSign "500 13\r\nServer:  Microsoft-IIS/5.0"//根據此標志來檢查目標是否有漏洞 
#pragma comment(lib,"ws2_32.lib") 
/////////////////////////////////////////////////////////////////////////// 
// 
//定義&初始化全局變量 
char *SendBuff="GET /NULL.printer\n",//發送的請求buff 
CurrentTarget[52]={0},//存放最后一個線程將掃描的目標 
turn[4][2]={"-","\\","|","/"};//顯示進度時的字符 
int SendBuffLen=strlen(SendBuff),//發送的buff長度 
iConnTimeout,//TCP Connect TimeOut 
ii=0,//掃描進度 
    iTotal;//服務器總數 
HANDLE hSemaphore=NULL,//信標內核對象句柄,用來控制線程數量 
       hStdout;//console標準輸出句柄,做進度顯示的時候用的 
struct timeval timeout;//連接、發送和接收的超時值 
DWORD SleepTime;//每個一個線程后等待的時間 
    /* 
SleepTime值根據用戶輸入的線程數量[ThreadNum]和TCP ConnectTimeOut[CONNTIMEO]來計算。確保在CONNTIMEO時間左右開ThreadNum個線程。這樣在CONNTIMEO時間后,所開的線程開始陸續超時退出,可以繼續穩定的開線程,可以有效的保證同時有ThreadNum個線程在運行。
*/ 
/////////////////////////////////////////////////////////////////////////// 
void ShowError(char *);//顯示出錯信息函數
BOOL ResetCursor(void);//重置光標位置,線程輸出的時候調用的 
DWORD WINAPI ShowProInfo(LPVOID);//顯示進度信息 
DWORD WINAPI scan(LPVOID);//掃描函數 
void usage(char *);//幫助函數 
/////////////////////////////////////////////////////////////////////////// 
int main(int argc,char **argv) 
{ 
    HANDLE hThread=NULL;//線程句柄 
    DWORD dwThreadID;//線程ID 
    struct sockaddr_in sa; 
    int i, 
       MaxThread;//最大線程數量 
    WSADATA    wsd; 
    long PreviousCount; 
    clock_t start,end;//程序運行的起始和結束時間 
    double duration; 
    //檢查用戶輸入參數 
    if(argc!=5) 
    { 
       usage(argv[0]); 
       return 1; 
    } 
    //get target range 
    int StartNet=inet_addr(argv[1]); 
    int StopNet=inet_addr(argv[2]); 
    int StartHost=ntohl(StartNet); 
    int StopHost=ntohl(StopNet); 
    //取得線程數量 
    MaxThread=atoi(argv[3]); 
    //取得conn超時時間 
    iConnTimeout=atoi(argv[4]); 
    //檢查參數合法性 
    if((iConnTimeout>6) || (iConnTimeout<2) || (MaxThread<1) || (MaxThread>500) || (StopHost<StartHost)) 
    { 
       usage(argv[0]); 
       return 1; 
    } 
    //計算時間 
    SleepTime=1000*iConnTimeout/MaxThread; 
    //設置連接超時值 
    timeout.tv_sec = iConnTimeout; 
    timeout.tv_usec =0; 
    __try 
    { 
       //開始計時 
       start=clock(); 
       //加載winsock庫 
       if (WSAStartup(MAKEWORD(1,1), &wsd) != 0) 
       { 
           ShowError("WSAStartup"); 
           __leave; 
       } 
       //創建信標內核對象句柄 
       hSemaphore=CreateSemaphore(NULL,MaxThread,MaxThread,NULL); 
       if(hSemaphore==NULL) 
       { 
           ShowError("CreateSemaphore"); 
           __leave; 
       } 
       //取得console標準輸出句柄 
       hStdout=GetStdHandle(STD_OUTPUT_HANDLE); 
       if(hStdout==INVALID_HANDLE_VALUE) 
       { 
           ShowError("GetStdHandle"); 
           __leave; 
       } 
       //設置目標總數 
       iTotal=StopHost-StartHost; 
       //創建進度顯示線程 
       hThread=CreateThread(NULL,0,ShowProInfo,NULL,0,&dwThreadID); 
       if(hThread==NULL) 
       { 
           ShowError("1 CreateThread"); 
           __leave; 
       } 
//關閉句柄 
       CloseHandle(hThread); 
       //循環創建掃描線程 
       for(i=StartHost;i<=StopHost;i++) 
       { 
           //等待信標內核對象通知 
           WaitForSingleObject(hSemaphore,INFINITE); 
           //create thread to scan 
           hThread=CreateThread(NULL,0,scan,(LPVOID)i,0,&dwThreadID); 
           if(hThread==NULL) 
           { 
              ShowError("2 CreateThread"); 
              break; 
           } 
           //進度自加1 
           ii++; 
           //重設最后一個線程掃描的目標 
           sa.sin_addr.s_addr=htonl(i); 
           strncpy(CurrentTarget,inet_ntoa(sa.sin_addr),sizeof(CurrentTarget)); 
          //休息一會兒 ) 
           Sleep(SleepTime); 
           //關閉線程句柄 
           CloseHandle(hThread); 
       } 
       //等待所有線程結束 
       while(1) 
       { 
           WaitForSingleObject(hSemaphore,INFINITE); 
           if(!ReleaseSemaphore(hSemaphore,1,&PreviousCount)) 
           { 
              ShowError("main() ReleaseSemaphore"); 
              Sleep(5000); 
              break; 
           } 
           if(PreviousCount==(MaxThread-1)) 
           { 
              printf("\nAll done."); 
              break; 
           } 
           Sleep(500); 
       } 
    }//end of try 
    //搞定,清場,收工 
    __finally 
    { 
       //計時結束 
       end=clock(); 
       //轉換時間格式 
       duration = (double)(end - start) / CLOCKS_PER_SEC; 
       //顯示所用時間 
       printf("\n\nComplete.Scan %d targets use %2.1f seconds.Speed %0.3g/s\n",iTotal,duration,iTotal/duration); 
       //關閉句柄 
       CloseHandle(hStdout); 
       CloseHandle(hSemaphore); 
       WSACleanup(); 
    } 
    return 0; 
} 
/////////////////////////////////////////////////////////////////////////// 
// 
//回顯錯誤信息函數 
// 
void ShowError(char *msg) 
{ 
    MessageBox(NULL,msg,"ERROR",0); 
    //printf("\n%s failed:%d",GetLastError()); 
} 
////////////////////////////////////////////////////////////////////////// 
// 
//重置光標位置函數,以便掃描線程輸出結果 
// 
BOOL ResetCursor() 
{ 
    CONSOLE_SCREEN_BUFFER_INFO ConsoleScreenBufferInfo; 
    //取得當前光標位置 
    if(!GetConsoleScreenBufferInfo(hStdout,&ConsoleScreenBufferInfo)) 
    { 
       ShowError("GetConsoleScreenBufferInfo"); 
       return FALSE; 
    } 
    //設置光標X坐標為0 
    ConsoleScreenBufferInfo.dwCursorPosition.X=0; 
    //設置當前光標位置 
    SetConsoleCursorPosition(hStdout,ConsoleScreenBufferInfo.dwCursorPosition); 
    return TRUE; 
} 
/////////////////////////////////////////////////////////////////////////// 
// 
//顯示進度信息函數 
// 
DWORD WINAPI ShowProInfo(LPVOID lp) 
{   
    int j,k; 
    CONSOLE_SCREEN_BUFFER_INFO ConsoleScreenBufferInfo; 
    float m; 
    for(j=0;ii<iTotal;j++) 
    { 
       //休息一會兒 )) 
       Sleep(SleepTime); 
       //取得當前光標位置 
       if(!GetConsoleScreenBufferInfo(hStdout,&ConsoleScreenBufferInfo)) 
       { 
           ShowError("GetConsoleScreenBufferInfo"); 
           return 1; 
       } 
       //設置百分比進度顯示的X坐標 
       ConsoleScreenBufferInfo.dwCursorPosition.X=0; 
       //設置當前光標位置 
       SetConsoleCursorPosition(hStdout,ConsoleScreenBufferInfo.dwCursorPosition); 
       //已經完成的百分比 
       m=(ii+1)*100.00/iTotal; 
       //顯示進度 
       if(ii==iTotal) 
       { 
           printf("******** 100%% Wait %d seconds to exit ********       \n",iConnTimeout); 
           break; 
       } 
       else 
       { 
           k=j%4; 
           printf("%-15s %s [%d/%d] %s %%%0.3g",CurrentTarget,turn[k],ii,iTotal,turn[k],m); 
       } 
    }//end of for 
    return 0; 
} 
/////////////////////////////////////////////////////////////////////////// 
// 
//掃描函數 
// 
DWORD WINAPI scan(LPVOID lp) 
{ 
    int i=(int)lp,iErr; 
    struct sockaddr_in server; 
    SOCKET s=INVALID_SOCKET; 
    char RecvBuff[1024]={0},*ptr; 
    int RecvBuffLen=sizeof(RecvBuff); 
    u_long ul=1;//初始化為為非0值 
  fd_set r,w; 
    //create socket 
    s=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); 
    if(s==INVALID_SOCKET) 
    { 
       printf("\nCreate socket failed:%d",GetLastError()); 
       ExitProcess(1); 
    } 
    //fill the addr struct 
    server.sin_family=AF_INET; 
    server.sin_port=htons(iPort); 
    server.sin_addr.S_un.S_addr=htonl(i); 
    __try 
    { 
       //設置socket為非鎖定模式,ul為0值的話,那么soocket將被設置為鎖定模式 
       iErr=ioctlsocket(s,FIONBIO,(unsigned long*)&ul); 
       if(iErr==SOCKET_ERROR ) 
       { 
           ResetCursor(); 
           ShowError("ioctlsocket"); 
           ExitProcess(1); 
       } 
       //printf("\n%X ioctl ok.strat conn",i); 
       //connect to target 
       connect(s,(struct sockaddr *)&server,sizeof(server)); 
       //printf("\n%X conn return,start select w",i); 
       //設置select參數 
       FD_ZERO(&w); 
       FD_SET(s, &w); 
       //等待connect成功&socket可寫 
       iErr=select(0, 0, &w, 0, &timeout); 
       //printf("\n%X select w return %d",i,iErr); 
       //等待返回后,socket仍不可寫則退出 
       if((iErr==SOCKET_ERROR) || (iErr==0)) 
       { 
           //printf("\n%X select return w err,exit",i); 
           __leave; 
       } 
       //socket可寫則繼續 
       else 
       { 
           //send buff to target 
           //printf("\n%X send",i); 
           iErr=send(s,SendBuff,SendBuffLen,0); 
           //printf("\n%X send return",i); 
           if(iErr==SOCKET_ERROR) 
              __leave; 
       } 
       //等待socket可讀 
       FD_ZERO(&r); 
       FD_SET(s, &r); 
       //printf("\n%X start select r",i); 
       iErr=select(0, &r, 0, 0, &timeout); 
       //printf("\n%X select r return %d",i,iErr); 
       if((iErr==SOCKET_ERROR) || (iErr==0)) 
       { 
           //printf("\n%X select r err,exit",i); 
           __leave; 
       } 
       else 
       { 
           //recv buff from target 
           //printf("\n%X start recv",i); 
           iErr=recv(s,RecvBuff,RecvBuffLen,0); 
           //printf("\n%X recv ret",i); 
           if(iErr==SOCKET_ERROR) 
              __leave; 
       } 
       //verify buff 
       ptr=strstr(RecvBuff,szSign); 
       if(ptr!=NULL) 
       { 
           //線程輸出前要先調用ResetCursor函數 
           ResetCursor(); 
           //輸出信息后務必加一個以上換行符號,輸出前請別加換行符號,以免顯示混亂 
           printf("[%-15s] has .printer mapped.        \n",inet_ntoa(server.sin_addr)); 
       } 
    } 
    __finally 
    { 
       if(!ReleaseSemaphore(hSemaphore,1,NULL)) 
           ShowError("thread ReleaseSemaphore failed"); 
       closesocket(s); 
    } 
    return 0; 
} 
/////////////////////////////////////////////////////////////////////////// 
void usage(char *proname) 
{ 
    printf("\n%s v0.1 only can find IIS5 .Printer mapped" 
       "\nPower by ey4s<ey4s@21cn.com> 2001.5.20" 
       "\nhttp://www.patching.net" 
       "\n\nUsage:%s <StartIP> <EndIP> <ThreadNum> <CONNTIMEO>" 
       "\n\nNotice" 
       "\n    StartIP StopIP ==>Don‘t forgot StopIP must large than StartIP " 
       "\n    ThreadNum ==>Thread number,please input between 1-500" 
       "\n    CONNTIMEO ==>TCP connect timeout,please input between 2-6" 
       "\n\nExample" 
       "\n    %s 192.168.0.0 192.168.255.255 200 2",proname,proname,proname); 
} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品久久久久久久久久| 丁香婷婷综合五月| 国产高清精品久久久久| 色先锋aa成人| 国产亚洲一本大道中文在线| 午夜电影一区二区| 99麻豆久久久国产精品免费| 91精品国产高清一区二区三区 | 成人免费看的视频| 欧美日韩国产一级片| 国产精品传媒在线| 国产成人免费xxxxxxxx| 日韩午夜激情视频| 日韩精品视频网| 色综合激情久久| 136国产福利精品导航| 国产一区视频在线看| 欧美一区二区黄| 午夜精品久久久久久| 色8久久精品久久久久久蜜| 国产精品国产三级国产aⅴ入口| 久久不见久久见免费视频1| 欧美欧美午夜aⅴ在线观看| 亚洲制服丝袜一区| 色天使久久综合网天天| 亚洲精品视频一区二区| 不卡一区在线观看| 亚洲欧洲av一区二区三区久久| 国产福利一区在线| 欧美国产日韩在线观看| 国产成人精品一区二区三区四区| 久久综合给合久久狠狠狠97色69| 另类人妖一区二区av| 欧美zozozo| 国产乱人伦偷精品视频不卡| 久久综合中文字幕| 懂色av一区二区三区蜜臀| 国产精品拍天天在线| www.日韩在线| 一区二区日韩av| 欧美日韩国产精选| 久久精品国产一区二区三区免费看 | 精品一区二区三区免费| 亚洲精品在线一区二区| 国产激情一区二区三区四区| 欧美韩国一区二区| 91免费版pro下载短视频| 亚洲综合色在线| 欧美另类videos死尸| 捆绑紧缚一区二区三区视频| 久久女同互慰一区二区三区| 不卡av免费在线观看| 玉米视频成人免费看| 8x8x8国产精品| 国产一区欧美二区| 国产精品久久久久婷婷二区次| 色88888久久久久久影院野外| 亚洲国产一二三| 精品国产露脸精彩对白| 久久综合色一综合色88| 成人黄色综合网站| 亚洲va欧美va天堂v国产综合| 日韩写真欧美这视频| 国产成人av电影在线| 亚洲一区二区三区四区五区黄| 日韩欧美资源站| 99在线视频精品| 免费高清不卡av| 国产精品久久久久久一区二区三区| 欧美在线观看18| 国产成人亚洲精品狼色在线| 亚洲精品日产精品乱码不卡| 日韩精品一区二区三区视频在线观看| 国产成人8x视频一区二区| 亚洲一区二区美女| 日本一区二区免费在线| 在线成人免费观看| www.日本不卡| 久久精品国产亚洲a| 亚洲狼人国产精品| 国产日韩视频一区二区三区| 欧美色图激情小说| 成人高清视频免费观看| 麻豆精品国产91久久久久久| 亚洲精品视频在线看| 久久综合成人精品亚洲另类欧美 | 91国偷自产一区二区三区成为亚洲经典| 婷婷中文字幕综合| 亚洲三级视频在线观看| 精品国产91亚洲一区二区三区婷婷| 91免费精品国自产拍在线不卡| 国产乱子伦视频一区二区三区 | 色94色欧美sute亚洲13| 豆国产96在线|亚洲| 老司机精品视频导航| 亚洲高清免费视频| 一区二区在线免费观看| 国产精品久久久久久久第一福利| 日韩精品在线网站| 337p亚洲精品色噜噜狠狠| 色老汉av一区二区三区| 99re热这里只有精品免费视频| 国产一区二区网址| 狠狠色丁香久久婷婷综| 美女性感视频久久| 奇米精品一区二区三区四区| 视频在线观看一区| 亚洲1区2区3区视频| 一区二区三区国产| 亚洲一级二级在线| 亚洲成人黄色小说| 日韩在线a电影| 免费欧美在线视频| 日本午夜精品视频在线观看| 日韩和的一区二区| 日韩精品电影在线观看| 日本午夜精品视频在线观看| 天堂精品中文字幕在线| 日韩不卡手机在线v区| 日韩va亚洲va欧美va久久| 日韩av中文字幕一区二区三区| 不卡大黄网站免费看| 国产成人鲁色资源国产91色综| 国精产品一区一区三区mba桃花| 久久99精品久久久久婷婷| 国产呦萝稀缺另类资源| 国产精品88av| 91色视频在线| 欧美女孩性生活视频| 日韩欧美一区在线| 久久精品亚洲精品国产欧美kt∨ | 国产精品嫩草久久久久| 中文字幕日韩一区| 亚洲午夜国产一区99re久久| 午夜久久久久久久久| 老司机精品视频线观看86| 国产成人aaaa| 欧美体内she精高潮| 日韩精品资源二区在线| 国产蜜臀av在线一区二区三区| 亚洲欧洲日韩av| 日本特黄久久久高潮| 国产精品一区二区在线播放| 97久久久精品综合88久久| 欧美色偷偷大香| 久久精品在这里| 亚洲一区二区三区视频在线 | 国产.精品.日韩.另类.中文.在线.播放| 福利电影一区二区| 欧洲视频一区二区| 日韩欧美在线影院| 亚洲毛片av在线| 久久99国产精品久久99 | ㊣最新国产の精品bt伙计久久| 亚洲成人av电影| 成人免费视频网站在线观看| 国产精品久久影院| 三级影片在线观看欧美日韩一区二区| 国产乱码一区二区三区| 欧美亚洲日本国产| 国产精品乱码妇女bbbb| 日本最新不卡在线| 91影视在线播放| 久久人人97超碰com| 无吗不卡中文字幕| 成人av小说网| 精品99999| 天天爽夜夜爽夜夜爽精品视频| 国产传媒欧美日韩成人| 欧美一区二区视频在线观看| 国产精品三级久久久久三级| 久久精品久久精品| 欧美在线观看一区| 综合激情网...| 丁香一区二区三区| 久久一夜天堂av一区二区三区| 亚洲国产成人tv| 91浏览器打开| 亚洲欧洲日韩av| 东方aⅴ免费观看久久av| 精品人伦一区二区色婷婷| 午夜成人免费视频| 91激情五月电影| 亚洲欧美日韩国产一区二区三区| 久久国产三级精品| 51精品秘密在线观看| 亚洲777理论| 欧美视频一区在线| 亚洲一区二区三区四区五区黄 | 亚洲特黄一级片| 成人午夜视频在线| 中文无字幕一区二区三区| 国产剧情在线观看一区二区| 亚洲精品一线二线三线| 久久99精品一区二区三区| 欧美一区二区三区播放老司机| 天天射综合影视| 欧美一卡二卡三卡| 蜜臀av性久久久久av蜜臀妖精| 6080yy午夜一二三区久久|