⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 一个扫描端口软件的分析.txt

📁 学习(编程技巧_编程知识_程序代码),是学习编程不可多得的学习精验
💻 TXT
字号:
一个扫描端口软件的分析
 

--------------------------------------------------------------------------------
 
第八军团 时间:2004-1-17 22:06:20 
   
本站点代码本人都在Linux上作过调试,如果在其他Unix系统上有问题 

请与本人联系 jjgirl@263.net 

本人已加中文注释,如果仍然有问题有给我留言或来信。 

/* -*-C-*- tcpprobe.c */ 

/* tcpprobe - report on which tcp ports accept connections */ 

/* IO ERROR, error@axs.net, Sep 15, 1995 */ 

  

#include  

#include  

#include  

#include  

#include  

#include  

/*below seven lines added by jjgirl 4.26.2000 */ 

#include  

#include  

#include  

#include  

#include  

#include  

#include  

/*jjgirl:以上为头文件,jjgirl加了几个头文件才编译通过! */ 

int main(int argc, char **argv) 

{ 

//int probeport = 0; 

struct hostent *host; 

int err, i, net; 

struct sockaddr_in sa; 

  

if (argc != 2) { 

printf("Usage: %s hostname\n", argv[0]); 

exit(1); 

} 

/*jjgirl:以上为检验参数! */ 

/*jjgirl:以下对1—1024端口开始扫描,你也可以把1024该为65536加大扫描范围。 */ 

for (i = 1; i < 1024; i++) { 

strncpy((char *)&sa, "", sizeof sa); 

sa.sin_family = AF_INET; 

if (isdigit(*argv[1])) 

sa.sin_addr.s_addr = inet_addr(argv[1]); 

else if ((host = gethostbyname(argv[1])) != 0) 

strncpy((char *)&sa.sin_addr, (char *)host->h_addr, sizeof sa.sin_addr); 

else { 

herror(argv[1]); 

exit(2); 

} 

sa.sin_port = htons(i); 

/*jjgirl:以上为填上sockaddr_in结构的内容,下面的connect要用它! */ 

/*下面开始socketle 了*/ 

net = socket(AF_INET, SOCK_STREAM, 0); 

if (net < 0) { 

perror("\nsocket"); 

exit(2); 

} 

/*jjgirl:开始connect! */ 

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); 

/*jjgirl:成功打印*/ 

if (shutdown(net, 2) < 0) { /*不允许接受和发送,但接口仍打开!*/  

perror("\nshutdown");  

exit(2); 

} 

} 

close(net); 

}//jjgirl:循环结束! 

printf(" \r"); 

fflush(stdout); 

return (0); 

} 
 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -