C++实现端口扫描
2013-11-04 23:11
656 查看
代码如下(看不懂的留言哦):
#include #include using namespace std; #pragma comment(lib,"ws2_32.lib") int main() { WORD wVersion = MAKEWORD(2,0); WSADATA wsaData; struct sockaddr_in sin; //socket信息。 int iFromPort; //起始端口号 int iToPort; //截至端口号 int iNowPort; //正在处理的端口号 char cHost[20]; //IP SOCKET s; int iOpenPort; //统计开放的端口个数 。 iOpenPort = 0; char choose; //是否存储到文件中。 FILE *tp; cout<<"请输入待检测IP:"; cin>>cHost; cout<<"请输入起始端口号:"; cin>>iFromPort; cout<<"请输入截至端口号:"; cin>>iToPort; cout<<"是否把扫描结果保存到文件(y/n):"; cin>>choose; if(choose == 'y') { tp = fopen("Out.txt","w+"); fprintf(tp,"IP:%s 扫描结果如下:\n",cHost); } if(iFromPort > iToPort || iFromPort < 0 || iFromPort >65535 || iToPort <0 || iToPort >65535) { printf("端口号输入错误!\n"); return 0; } if (WSAStartup(wVersion , &wsaData)) { printf("初始化失败!\n"); return -1; } printf("======= 开始扫描 ======= \n"); for(iNowPort = iFromPort; iNowPort <= iToPort; iNowPort++) { s = socket(AF_INET,SOCK_STREAM,0); 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*)&sin,sizeof(sin)) == SOCKET_ERROR) { printf("%s -> %d:未开放 \n",cHost,iNowPort); closesocket(s); } else { if(choose == 'y') { fprintf(tp,"端口:%d 开放\n",iNowPort); } printf("%s -> %d:开放 \n",cHost,iNowPort); iOpenPort ++; closesocket(s); } } printf("======= 扫描结果 ======= \n"); printf("主机:%s 扫描到%d个端口开放\n",cHost,iOpenPort); if(choose == 'y') { fclose(tp); } closesocket(s); WSACleanup(); return 0; }
相关文章推荐
- C++实现端口扫描
- c++ 端口扫描程序实现案例
- 端口和CGI的扫描实现
- 使用WDM驱动实现在NT下读取物理端口,特殊寄存器,物理内存的代码(C++测试代码)
- windows下,c /c++实现磁盘扫描,结合配置文件,读取特定后缀文件目录代码
- 使用python实现扫描端口示例
- Python小练习-实现简单端口扫描~
- 端口扫描程序实现原理
- 【C/C++】【Linux&Windows】Windows系统下的文件夹扫描与Linux系统下的实现比较
- shell脚本结合iptables防端口扫描的实现
- [C++] C++ Builder 下实现端口读写
- 简单实现C多线程端口扫描核心代码(转)
- linux下端口扫描的实现(TCP connect、TCP SYN、TCP FIN、UDP四种方式)
- CSocket实现端口扫描
- 端口详解+端口扫描原理+简单端口扫描实现
- 多线程实现端口扫描
- c语言实现端口扫描程序
- c++ 端口扫描程序
- Python之——实现高效的端口扫描
- Python实现网段固定端口扫描