📄 scan.c
字号:
/*包含一些网络调用和系统调用的头文件*/
#include <winsock2.h>
#include "stdio.h"
#include <ctype.h>
#pragma comment( lib, "ws2_32" )
#include <stdlib.h>
#include <windows.h>
int main(int argc,char **argv)
{
int probeport=0;
//struct hostent *host;/*这里定义socket 主机结构*/
int err,I,net;
short i;
struct sockaddr_in sa;/*socket地址结构*/
if(argc!=2)
{
printf("用法:%s hostIP/n",argv[0]);
exit(2);
}
for (i=1;i<65535;i++)/*扫描端口范围*/
{
strncpy((char*)&sa,"",sizeof sa);
sa.sin_family=AF_INET;/*TCP/IP协议族*/
//if(iswdigit(argv[1]))
sa.sin_addr.s_addr=inet_addr(argv[1]);
//else {
//if(gethostbyname(argv[1])!=NULL){
// host=gethostbyname(argv[1]);
// strncpy((char*)&sa.sin_addr,(char*)host->h_name,sizeof(sa.sin_addr));
//}
//else
//{
// perror(argv[1]);
// exit(2);
//}
//}
sa.sin_port=htons(i);/*本次扫描端口*/
net=socket(PF_INET,SOCK_STREAM,0);/*建立一个socket套字节*/
//if(net==INVALID_SOCKET )
//{
// perror("\nsocket");
// exit(2);
//}
I=i;
err=connect(net,(struct sockaddr*)&sa,sizeof(sa));/*连接到本端口*/
if(err!=0)
{
printf("%s%5d%s\r",argv[1],I,strerror(errno));/*如果端口关闭,则显示*/
// fflush(stdout);
}
else
{
printf("%s%5d accepted.\n",argv[1],I);/*开放的端口显示*/
}
closesocket(net);/*关闭连接*/
}
printf("\r");
// ffush(stdout);
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -