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

📄 statd.c

📁 非常高效的扫描器
💻 C
字号:
#include <stdio.h>#include <netdb.h>#include <stdlib.h>#include <signal.h>#include <rpc/rpc.h>#include <arpa/inet.h>#include <sys/socket.h>#include <netinet/in.h>#include <rpc/pmap_prot.h>#include <rpc/pmap_clnt.h>#define ERROR -1int woopy(int s);int statd(char *host);unsigned long int res(char *p);int woopy(int s) // EINTR @*&()!~@*$)({  return 0;}int statd(char *host){  struct sockaddr_in server_addr;  struct pmaplist *head = NULL;  int sockett = RPC_ANYSOCK;  struct timeval minutetimeout;  register CLIENT *client;  struct rpcent *rpc;  server_addr.sin_addr.s_addr=inet_addr(host);  server_addr.sin_family=AF_INET;  server_addr.sin_port = htons(PMAPPORT);  minutetimeout.tv_sec = 15;  minutetimeout.tv_usec = 0;  /* cause clnttcp_create uses connect() */  signal(SIGALRM,woopy);  alarm(15);  if ((client = clnttcp_create(&server_addr, PMAPPROG,        PMAPVERS, &sockett, 50, 500)) == NULL) {    alarm(0);    signal(SIGALRM,SIG_DFL);    return 0;  }  alarm(0);  signal(SIGALRM,SIG_DFL);  if (clnt_call(client, PMAPPROC_DUMP, (xdrproc_t) xdr_void, NULL,        (xdrproc_t) xdr_pmaplist, &head, minutetimeout) != RPC_SUCCESS)    return 0;  if (head != NULL)    for (; head != NULL; head = head->pml_next)      if((rpc = getrpcbynumber(head->pml_map.pm_prog)))        if(strcmp(rpc->r_name,"rstatd") == 0)          return 1;  return 0;}unsigned long int res(char *p){   struct hostent *h;   h=gethostbyname(p);   if(h!=NULL)	{     return h->h_addr;	}}

⌨️ 快捷键说明

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