portscan程序代码

阅读更多

#include
#include
// 编译时需使用的库
#pragma comment(lib,"wsock32.lib")
// select()成员定义
#define ZERO (fd_set *)0
// 变量定义
int maxth, scanok, scannum;
int portip, hoststart, hoststop, startport, endport; //定义了开始I和结束P地址,开始和结束端口
long searchnum, searched;
void usage(char *);   // 定义显示使用方法函数
void playx(int);   // 定义状态提示函数
void setip2(char *);   // 定义设置IP函数
void customport(char *, char *, char *); // 定义自定义扫描端口函数
void portscannow(int);   // 定义端口扫描扫描

// 主程序
int main(int argc, char *argv[])
{
WSADATA wsadata;
// 清屏
system("cls.exe");
// 显示版本信息
printf("\r\n==================== HUC Command Line PortScanner V0.2 ====================");
printf("\r\n=============== By Lion, Welcome to http://www.cnhonker.net ===============\r\n\n");

// 检查输入
if ((argc < 3) || (argc > 4))
{
// 显示帮助提示
usage(argv[0]);
return -1;
}

// 检测是否为port扫描
if(!(stricmp(strlwr(argv[1]), "-p") == 0))
{
usage(argv[0]);
return -1;
}

// 程序初始化
if (WSAStartup(MAKEWORD(1,1), &wsadata) != 0) //如果初始化错误
{
printf("\r\nWsatartup error");       //出错信息
return -1;
}

// 端口扫描参数转换
// 如果参数为三个
if (argc == 3)
{
// 直接设置IP
setip2(argv[2]);
}
// 如果参数为四个
else
if (argc == 4)
{
// 进入定制端口扫描处理
customport(argv[0], argv[2], argv[3]);
}
// 参数过多显示帮助
else
{
usage(argv[0]);
return -1;
}

// 扫描端口开始
portscannow(argc);

WSACleanup();
return 0;
}

// 帮助提示函数
void usage(char * prog)
{
printf("Usage: %s

你可能感兴趣的:(XP,Socket,thread,.net)