📄 s.cpp
字号:
#include<stdio.h>
#include<winsock2.h>
#include<time.h>
#pragma comment(lib,"ws2_32.lib")
int threadn=0;
char *ip;
TIMEVAL timeout;
FD_SET mask;
int totalport=0;
int nport=1;
DWORD WINAPI Threads(LPVOID lp)
{
int port=*(DWORD*)lp;
SOCKET mysock;
struct sockaddr_in myaddr;
u_long v=1;
mysock=socket(AF_INET,SOCK_STREAM,0);
if(mysock==INVALID_SOCKET)
{
printf("musock error\n");
InterlockedExchangeAdd((long *)&threadn,-1);
return 0;
}
if(mysock==INVALID_SOCKET) return 0;
myaddr.sin_addr.S_un.S_addr=inet_addr(ip);
myaddr.sin_family=AF_INET;
ioctlsocket(mysock,FIONBIO,&v);
myaddr.sin_port=htons(port);
connect(mysock,(struct sockaddr *)&myaddr,sizeof(myaddr));
//timeout.tv_sec=0;
//timeout.tv_usec=1;
FD_ZERO(&mask);
FD_SET(mysock,&mask);
v=select(0,NULL,&mask,NULL,&timeout);
if(v==0||v==-1)
{
closesocket(mysock);
Sleep(10);
InterlockedExchangeAdd((long *)&threadn,-1);
return 0;
}
else
{
shutdown(mysock,0);
printf("Thread:%d Scan %s\t%d \t Open\n",threadn,ip,port);
closesocket(mysock);
Sleep(10);
InterlockedExchangeAdd((long *)&threadn,-1);
}
return 0;
}
int main(int argc, char * argv[])
{
WSAData ws;
//int nport;
int maxthread;
int minp,maxp;
if(argc!=5)
{
printf("\nUse: s ip Startprot Endport thread\n");
printf("Example:s 127.0.0.1 2 9999 512\n");
return 0;
}
ip=argv[1];
minp=atoi(argv[2]);
maxp=atoi(argv[3]);
maxthread=(atoi(argv[4])-1>999)?999:atoi(argv[4])-1;
if(WSAStartup(MAKEWORD(1,1),&ws)!=0)
{
printf("Winsocket Startup Failed!/n");
WSACleanup();
return 0;
}
timeout.tv_usec=0;
if(maxthread>500)timeout.tv_sec=2;
else timeout.tv_sec=1;
totalport=maxp-minp;
printf("[*]begaining scan\n");
for(int port=minp;port<=maxp;port++,nport++,threadn++)
{
Sleep(1);
while(threadn>maxthread)
{
Sleep(10);
}
CreateThread(NULL,0,Threads,&port,0,NULL);
printf("[*]Finished\t%d%s\r",nport*100/(totalport+1),"%");
}
printf("\n[*]Waiting threads end...\n");
Sleep(1000);
while(threadn>0)
{
Sleep(1);
printf("[*]%d threads \r",threadn);
}
printf("\n[*]Scan over\n");
WSACleanup();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -