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

📄 405.htm

📁 unix高级编程原吗
💻 HTM
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CTerm非常精华下载</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="577">
<tr><td width="32%" rowspan="3" height="123"><img src="DDl_back.jpg" width="300" height="129" alt="DDl_back.jpg"></td><td width="30%" background="DDl_back2.jpg" height="35"><p align="center"><a href="http://apue.dhs.org"><font face="黑体"><big><big>apue</big></big></font></a></td></tr>
<tr>
<td width="68%" background="DDl_back2.jpg" height="44"><big><big><font face="黑体"><p align="center">               ● UNIX网络编程                       (BM: clown)                </font></big></big></td></tr>
<tr>
<td width="68%" height="44" bgcolor="#000000"><font face="黑体"><big><big><p   align="center"></big></big><a href="http://cterm.163.net"><img src="banner.gif" width="400" height="60" alt="banner.gif"border="0"></a></font></td>
</tr>
<tr><td width="100%" colspan="2" height="100" align="center" valign="top"><br><p align="center">[<a href="index.htm">回到开始</a>][<a href="316.htm">上一层</a>][<a href="406.htm">下一篇</a>]
<hr><p align="left"><small>cc -o pscan pscan.c -lsocket -lnsl <br>

---------------------------------------------------------------------------- <br>

---- <br>

 cloudsky 于 00-6-23 11:56:36 加贴在 绿盟科技论坛(bbs.nsfocus.com)--UNIX系统 <br>

安全: <br>

static char sccsid[] = "@(#)pscan.c     1.0    (KRAD) 08/25/94"; <br>

#include <stdio.h> <br>

#include <sys/types.h> <br>

#include <sys/socket.h> <br>

#include <netinet/in.h> <br>

#include <netdb.h> <br>

#define MAX_PORT 1024 /* scan up to this port */ <br>

int s; <br>

struct sockaddr_in addr; <br>

char rmt_host[100]; <br>

int skan(port) <br>

int port; <br>

{ <br>

int r; <br>

    s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); <br>

    if (s < 0) { <br>

       /* fprintf("ERROR: socket() failed\n");*/ <br>

       /* Changed to printf for my Linux1.1.18 box */ <br>



       printf("ERROR: socket() failed\n"); <br>

       exit(0); <br>

    } <br>

    addr.sin_family = PF_INET; <br>

    addr.sin_port = port; <br>

    addr.sin_addr.s_addr = inet_addr(rmt_host); <br>

    r = connect(s,(struct sockaddr *) &addr, sizeof(addr)); <br>

    close(s); <br>

    if (r < 0) { <br>

       return (1 == 0); <br>

    } <br>

    return (1 == 1); <br>

} <br>

main(argc,argv) <br>

int argc; <br>

char *argv[]; <br>

{ <br>

int a,b,c,d,e,f; <br>

struct hostent *foo; <br>

struct servent *bar; <br>

   if (argc < 2) { <br>

      fprintf(stderr,"usage: %s <host> [highestport]\n",argv[0]); <br>



      exit(0); <br>

   } <br>

   if (sscanf(argv[1],"%d.%d.%d.%d",&a,&b,&c,&d)!= 4) { <br>

      foo = gethostbyname(argv[1]); <br>

      if (foo == NULL) { <br>

         fprintf(stderr,"error:cannot resolve host %s\n",argv[1]); <br>

         exit(0); <br>

      } <br>

      sprintf(rmt_host,"%d.%d.%d.%d",(unsigned char )foo->h_addr_list[0][0], <br>

  <br>

             (unsigned char ) foo->h_addr_list[0][1], <br>

             (unsigned char ) foo->h_addr_list[0][2], <br>

             (unsigned char ) foo->h_addr_list[0][3]); <br>

   } else { <br>

      strncpy(rmt_host,argv[1],99); <br>

   } <br>

   if (argc > 2) { <br>

      f = atoi(argv[2]); <br>

   } else <br>

      f = MAX_PORT; <br>

   fprintf(stdout,"Scanning host %s - TCP ports 1 through %d\n",rmt_host,f); <br>

  <br>



   for (e =1;e<=f;e++) { <br>

    char serv[100]; <br>

      if (skan(e)) { <br>

         bar = getservbyport(e,"tcp"); <br>

         printf("%d (%s) is running.\n",e,(bar== NULL) ? "UNKNOWN" : <br>

               bar->s_name); <br>

      } <br>

   } <br>

} <br>

</small><hr>
<p align="center">[<a href="index.htm">回到开始</a>][<a href="316.htm">上一层</a>][<a href="406.htm">下一篇</a>]
<p align="center"><a href="http://cterm.163.net">欢迎访问Cterm主页</a></p>
</table>
</body>
</html>

⌨️ 快捷键说明

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