发信人: love1974() 
整理人: girlrong(1999-11-10 07:48:48), 站内信件
 | 
 
 
RED HAT LINUX6下编译通过(CGIC1.06版本)
 
 #include <cgic.c>
 /*#include <stdio.h>*/
 #include <fcntl.h>
 #include <netinet/in.h>
 #include <sys/types.h>
 #include <sys/socket.h>
 /*#include <string.h>*/
 #define  HOST_ADDR "159.226.1.19"
 #define  HOST_PORT 80
 int get_domain(char *buf,char *rst);
 void cgi_out(char *error,char *rst);
 int  cgiMain()
 {
     FILE *mydebug;
     int s;
     int iResult;
 
     struct sockaddr_in addr;
     char strSubAddr[100],strBuffer[100],result[10000],tmp[10000];
     char domain[50],tmp_domain[50];
     int  ext_choose,k;
     char *ext[]={"com","net","org"};
     strcpy(domain,"");
     ext_choose=0;
     k=0;
     cgiFormStringNoNewlines("domain",domain,45);
     cgiFormSelectSingle("ext",ext,3,&ext_choose,0);
 
     if((domain==""))
        {
          cgi_out("Please Select Domain or Ext Name!\r\n","");
          return 0;
        }
 
     s=socket(AF_INET,SOCK_STREAM,0);
     if(s<0)
         cgi_out("Create Socket Error! \r\n","");
     addr.sin_family=AF_INET;
     addr.sin_port=htons(HOST_PORT);
     addr.sin_addr.s_addr=inet_addr(HOST_ADDR);
     iResult=connect(s,(struct sockaddr *)&addr,sizeof(addr));
     if(iResult<0)
         {
           /*error*/
           cgi_out("Remote Server Connect Error!\r\n","");
           close(s);
           return 1;
         }
      else
         {
           sprintf(strSubAddr,"GET /cgi-bin/srdp?%s.%s.cn \r\n",
                   domain,ext[ext_choose]);
           iResult=send(s,strSubAddr,strlen(strSubAddr),0);
           do
            {
             iResult=recv(s,strBuffer,sizeof(strBuffer),0);
             strncat(tmp,strBuffer,strlen(strBuffer)-strlen(strSubAddr) );
            }while(iResult!=0);
          if(get_domain(tmp,result)==1)
              cgi_out("<CENTER>
                       您选择的域名在域名数据库中没有找到,您可以注册此域 名</CENTER><BR>","");
          else
              cgi_out("",result);
 /*         mydebug=fopen("/home/liyuhua/query/query.debug","wt");
          fputs(strBuffer,mydebug);
          fclose(mydebug);*/
 
         }
    close(s);
    return 0;
  }
 int get_domain(char *buf,char *rst)
 {
    int i=0;
    char *move;
    
    char *sub_pointer_start,*sub_pointer_end;
    move=buf;
    if((sub_pointer_start=strstr(buf,"<pre>"))==NULL)
      {
        if((sub_pointer_start=strstr(buf,"<PRE>"))!=NULL)
            ;
      }
 
     if((sub_pointer_end=strstr(buf,"</pre>"))==NULL)
       {
         if((sub_pointer_end=strstr(buf,"</PRE>"))!=NULL)
            ;
        }
     if((sub_pointer_start==NULL)||(sub_pointer_end==NULL))
        return 1;
 
     strncpy(rst,sub_pointer_start+5,sub_pointer_end-sub_pointer_start) ;
     buf=move;
     return 0;
 }
 void cgi_out(char *error,char *rst)
 {
   cgiHeaderContentType("text/html");
   fprintf(cgiOut,"<HTML><HEAD>\n");
   fprintf(cgiOut,"<TITLE>Search Domain Result</TITLE></HEAD>\n");
   fprintf(cgiOut,"<body bgcolor=#FFFFF background=/gif/back_3.jpg>\n") ;
   fprintf(cgiOut,"<CENTER><FONT color=blue size=5>域名查询结果
                            </CENTER><BR>");
   if(error!="")
     fprintf(cgiOut,error);
   else
     { 
       fprintf(cgiOut,"<pre>");
       fprintf(cgiOut,rst);
       fprintf(cgiOut,"</pre>");
     }
   fprintf(cgiOut,"<FORM>
                   <CENTER><INPUT onclick=history.back() type=button va lue=
                   \" 返回 \"></CENTER>
                   </FORM>");
   fprintf(cgiOut,"\n</BODY></HTML>");
 }
  -- 太太平平,不是我活着的目标;不温不火,不是我的性格。是云就该下雨,是火就该发光。 
 
 那罐星砂送給你   
 ╭╯  ╰╮╭╯╰╮    願你心想事成 
 ║▃▃▃║║☆★║  這罐海水留給我 
 ║███║║☆★║  裝滿我的思念 
  ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.104.36.228]
  | 
 
 
 |