資源簡介
一個端口就是一個潛在的通信通道,也就是一個入侵通道。本程序用c語言是實現端口掃描

代碼片段和文件信息
#include??
#include??//printf函數要用的頭文件?
#pragma?comment(lib“ws2_32.lib“)?
void?Help();?//申明幫助函數?
int?main(int?argc?char*?argv[])?
{?
//申明變量?
WORD?wVersion?=?MAKEWORD(20);?//socket的版本?
WSADATA?wsaData;?
//sockaddr_in結構?
struct?sockaddr_in?sin;?
int?iFromPort;?//開始端口?
int?iToPort;?//結束端口?
int?iNowPort;?//正在掃描的端口?
char*?cHost;?//要掃描的主機?
SOCKET?s;?//保存創建socket時的返回值?
int?iOpenPort;?//開放端口個數?
iOpenPort?=?0;?
//如果命令行下參數不是4個(包括portscan.exe本身),提示正確的用法?
if(argc?!=?4)?
{?
?//?Help();?//給出幫助?
??return?-1;?
}?
//保存用戶輸入的要掃描的起始端口和結束端口?
//由于用戶輸入的是char型,所以要先轉成int型?
iFromPort?=?atoi(argv[2]);?
iToPort?=?atoi(argv[3]);?
cHost?=?argv[1];?
//對用戶輸入的端口進行判斷?
if(iFromPort?>?iToPort?||?iFromPort?0?||?iFromPort?>65535?||?iToPort?<0?||?iToPort?>65535)?
{?
??printf(“起始端口不能大于結束端口,且范圍為:1-65535!\n“);?
??return?0;?
}?
if?(WSAStartup(wVersion??&wsaData))?
{?
??printf(“初始化失敗!“);?
??return?-1;?
}?
printf(“=======?開始掃描?=======\n“);?
//循環連結端口,以判斷端口是否開放?
for(iNowPort?=?iFromPort;?iNowPort?<=?iToPort;?iNowPort++)?
{?
??s?=?socket(AF_INETSOCK_STREAM0);?
??if(s?==?INVALID_SOCKET)?
??{?
???printf(“創建socket()失敗!\n“);?
???WSACleanup();???
??}?
???
??//給結構成員賦值?
??sin.sin_family?=?AF_INET;?
??sin.sin_port?=?htons(iNowPort);?
??sin.sin_addr.S_un.S_addr?=?inet_addr(cHost);?
???
??//建立連結?
??if(connect(s(struct?sockaddr*)&sinsizeof(sin))?==?SOCKET_ERROR)?
??{?
???printf(“%s?->?%d:未開放\n“cHostiNowPort);???
???closesocket(s);?
??}?
??else?
??{?
???printf(“%s?->?%d:開放\n“cHostiNowPort);?
???iOpenPort?++;?
???closesocket(s);?
??}???
}?
printf(“=======?掃描結果?=======\n“);?
printf(“主機:%s?掃描到%d個端口開放“cHostiOpenPort);?
//關閉socket?
closesocket(s);?
WSACleanup();?
return?0;?
}?
/*
//以下為幫助函數內容?
void?Help()?
{?
printf(“\nPortScan?V1.0?by:∮明天去要飯\n“);?
printf(“Usage:\n“);?
printf(“??PortScan.exe???\n“);?
printf(“Example:\n“);?
printf(“??PortScan.exe?127.0.0.1?135?445\n“);???
}
*/
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-06-04?10:54??端口掃描\
?????文件????????2250??2011-05-29?16:42??端口掃描\port_scan.cpp
?????文件????????3437??2011-05-29?16:37??端口掃描\port_scan.dsp
?????文件?????????543??2011-05-29?16:42??端口掃描\port_scan.dsw
?????文件???????33792??2011-05-29?16:42??端口掃描\port_scan.ncb
?????文件???????48640??2011-05-29?16:42??端口掃描\port_scan.opt
?????文件?????????769??2011-05-29?16:42??端口掃描\port_scan.plg
?????文件????????2468??2011-05-29?16:50??端口掃描\port_scan2.cpp
?????文件????????3449??2011-05-29?16:50??端口掃描\port_scan2.dsp
?????文件?????????545??2011-05-29?16:50??端口掃描\port_scan2.dsw
?????文件???????41984??2011-05-29?16:50??端口掃描\port_scan2.ncb
?????文件???????48640??2011-05-29?16:50??端口掃描\port_scan2.opt
?????文件?????????838??2011-05-29?16:50??端口掃描\port_scan2.plg
?????文件????????1295??2011-05-29?17:02??端口掃描\port_scan3.cpp
?????文件????????3449??2011-05-29?16:59??端口掃描\port_scan3.dsp
?????文件?????????545??2011-05-29?17:22??端口掃描\port_scan3.dsw
?????文件???????41984??2011-05-29?17:22??端口掃描\port_scan3.ncb
?????文件???????48640??2011-05-29?17:22??端口掃描\port_scan3.opt
?????文件?????????842??2011-05-29?17:02??端口掃描\port_scan3.plg
- 上一篇:C++控制播放/插入PPT等操作
- 下一篇:C++ 帶接口類動態鏈接庫開發
評論
共有 條評論