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

📄 output.c

📁 统计日志的工具
💻 C
📖 第 1 页 / 共 5 页
字号:
   sprintf(buffer,"%s %d",l_month[cur_month-1],cur_year);   write_html_head(buffer, out_fp);   month_links();   month_total_table();   if (daily_graph || daily_stats)        /* Daily stuff */   {      fprintf(out_fp,"<A NAME=\"DAYSTATS\"></A>\n");      if (daily_graph) fprintf(out_fp,"<IMG SRC=\"%s\" ALT=\"%s\" " \                  "HEIGHT=400 WIDTH=512><P>\n",png1_fname,dtitle);      if (daily_stats) daily_total_table();   }   if (hourly_graph || hourly_stats)      /* Hourly stuff */   {      fprintf(out_fp,"<A NAME=\"HOURSTATS\"></A>\n");      if (hourly_graph) fprintf(out_fp,"<IMG SRC=\"%s\" ALT=\"%s\" "  \                     "HEIGHT=256 WIDTH=512><P>\n",png2_fname,htitle);      if (hourly_stats) hourly_total_table();   }   /* Do URL related stuff here, sorting appropriately                      */   if ( (a_ctr=load_url_array(NULL)) )   {    if ( (u_array=malloc(sizeof(UNODEPTR)*(a_ctr))) !=NULL )    {     a_ctr=load_url_array(u_array);        /* load up our sort array        */     if (ntop_urls || dump_urls)     {       qsort(u_array,a_ctr,sizeof(UNODEPTR),qs_url_cmph);       if (ntop_urls) top_urls_table(0);   /* Top URL's (by hits)           */       if (dump_urls) dump_all_urls();     /* Dump URLS tab file            */     }     if (ntop_urlsK)                       /* Top URL's (by kbytes)         */      {qsort(u_array,a_ctr,sizeof(UNODEPTR),qs_url_cmpk); top_urls_table(1); }     if (ntop_entry)                       /* Top Entry Pages               */      {qsort(u_array,a_ctr,sizeof(UNODEPTR),qs_url_cmpn); top_entry_table(0);}     if (ntop_exit)                        /* Top Exit Pages                */      {qsort(u_array,a_ctr,sizeof(UNODEPTR),qs_url_cmpx); top_entry_table(1);}     free(u_array);    }    else if (verbose) fprintf(stderr,"%s [u_array]\n",msg_nomem_tu); /* err */   }   /* do hostname (sites) related stuff here, sorting appropriately...      */   if ( (a_ctr=load_site_array(NULL)) )   {    if ( (h_array=malloc(sizeof(HNODEPTR)*(a_ctr))) !=NULL )    {     a_ctr=load_site_array(h_array);       /* load up our sort array        */     if (ntop_sites || dump_sites)     {       qsort(h_array,a_ctr,sizeof(HNODEPTR),qs_site_cmph);       if (ntop_sites) top_sites_table(0); /* Top sites table (by hits)     */       if (dump_sites) dump_all_sites();   /* Dump sites tab file           */     }     if (ntop_sitesK)                      /* Top Sites table (by kbytes)   */     {       qsort(h_array,a_ctr,sizeof(HNODEPTR),qs_site_cmpk);       top_sites_table(1);     }     free(h_array);    }    else if (verbose) fprintf(stderr,"%s [h_array]\n",msg_nomem_ts); /* err */   }   /* do referrer related stuff here, sorting appropriately...              */   if ( (a_ctr=load_ref_array(NULL)) )   {    if ( (r_array=malloc(sizeof(RNODEPTR)*(a_ctr))) != NULL)    {     a_ctr=load_ref_array(r_array);     if (ntop_refs || dump_refs)     {       qsort(r_array,a_ctr,sizeof(RNODEPTR),qs_ref_cmph);       if (ntop_refs) top_refs_table();   /* Top referrers table            */       if (dump_refs) dump_all_refs();    /* Dump referrers tab file        */     }     free(r_array);    }    else if (verbose) fprintf(stderr,"%s [r_array]\n",msg_nomem_tr); /* err */   }   /* do search string related stuff, sorting appropriately...              */   if ( (a_ctr=load_srch_array(NULL)) )   {    if ( (s_array=malloc(sizeof(SNODEPTR)*(a_ctr))) != NULL)    {     a_ctr=load_srch_array(s_array);     if (ntop_search || dump_search)     {       qsort(s_array,a_ctr,sizeof(SNODEPTR),qs_srch_cmph);       if (ntop_search) top_search_table(); /* top search strings table     */       if (dump_search) dump_all_search();  /* dump search string tab file  */     }     free(s_array);    }    else if (verbose) fprintf(stderr,"%s [s_array]\n",msg_nomem_tsr);/* err */   }   /* do ident (username) related stuff here, sorting appropriately...      */   if ( (a_ctr=load_ident_array(NULL)) )   {    if ( (i_array=malloc(sizeof(INODEPTR)*(a_ctr))) != NULL)    {     a_ctr=load_ident_array(i_array);     if (ntop_users || dump_users)     {       qsort(i_array,a_ctr,sizeof(INODEPTR),qs_ident_cmph);       if (ntop_users) top_users_table(); /* top usernames table            */       if (dump_users) dump_all_users();  /* dump usernames tab file        */     }     free(i_array);    }    else if (verbose) fprintf(stderr,"%s [i_array]\n",msg_nomem_ti); /* err */   }   /* do user agent related stuff here, sorting appropriately...            */   if ( (a_ctr=load_agent_array(NULL)) )   {    if ( (a_array=malloc(sizeof(ANODEPTR)*(a_ctr))) != NULL)    {     a_ctr=load_agent_array(a_array);     if (ntop_agents || dump_agents)     {       qsort(a_array,a_ctr,sizeof(ANODEPTR),qs_agnt_cmph);       if (ntop_agents) top_agents_table(); /* top user agents table        */       if (dump_agents) dump_all_agents();  /* dump user agents tab file    */     }     free(a_array);    }    else if (verbose) fprintf(stderr,"%s [a_array]\n",msg_nomem_ta); /* err */   }   if (ntop_ctrys ) top_ctry_table();     /* top countries table            */   write_html_tail(out_fp);               /* finish up the HTML document    */   fclose(out_fp);                        /* close the file                 */   return (0);                            /* done...                        */}/*********************************************//* MONTH_LINKS - links to other page parts   *//*********************************************/void month_links(){   fprintf(out_fp,"<SMALL>\n");   if (daily_stats || daily_graph)      fprintf(out_fp,"<A HREF=\"#DAYSTATS\">[%s]</A>\n",msg_hlnk_ds);   if (hourly_stats || hourly_graph)      fprintf(out_fp,"<A HREF=\"#HOURSTATS\">[%s]</A>\n",msg_hlnk_hs);   if (ntop_urls || ntop_urlsK)      fprintf(out_fp,"<A HREF=\"#TOPURLS\">[%s]</A>\n",msg_hlnk_u);   if (ntop_entry)      fprintf(out_fp,"<A HREF=\"#TOPENTRY\">[%s]</A>\n",msg_hlnk_en);   if (ntop_exit)      fprintf(out_fp,"<A HREF=\"#TOPEXIT\">[%s]</A>\n",msg_hlnk_ex);   if (ntop_sites || ntop_sitesK)      fprintf(out_fp,"<A HREF=\"#TOPSITES\">[%s]</A>\n",msg_hlnk_s);   if (ntop_refs && t_ref)      fprintf(out_fp,"<A HREF=\"#TOPREFS\">[%s]</A>\n",msg_hlnk_r);   if (ntop_search && t_ref)      fprintf(out_fp,"<A HREF=\"#TOPSEARCH\">[%s]</A>\n",msg_hlnk_sr);   if (ntop_users && t_user)      fprintf(out_fp,"<A HREF=\"#TOPUSERS\">[%s]</A>\n",msg_hlnk_i);   if (ntop_agents && t_agent)      fprintf(out_fp,"<A HREF=\"#TOPAGENTS\">[%s]</A>\n",msg_hlnk_a);   if (ntop_ctrys)      fprintf(out_fp,"<A HREF=\"#TOPCTRYS\">[%s]</A>\n",msg_hlnk_c);   fprintf(out_fp,"</SMALL>\n<P>\n");}/*********************************************//* MONTH_TOTAL_TABLE - monthly totals table  *//*********************************************/void month_total_table(){   int i,days_in_month;   u_long max_files=0,max_hits=0,max_visits=0,max_pages=0;   double max_xfer=0.0;   days_in_month=(l_day-f_day)+1;   for (i=0;i<31;i++)   {  /* Get max/day values */      if (tm_hit[i]>max_hits)     max_hits  = tm_hit[i];      if (tm_file[i]>max_files)   max_files = tm_file[i];      if (tm_page[i]>max_pages)   max_pages = tm_page[i];      if (tm_visit[i]>max_visits) max_visits= tm_visit[i];      if (tm_xfer[i]>max_xfer)    max_xfer  = tm_xfer[i];   }   fprintf(out_fp,"<TABLE WIDTH=510 BORDER=2 CELLSPACING=1 CELLPADDING=1>\n");   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");   fprintf(out_fp,"<TR><TH COLSPAN=3 ALIGN=center BGCOLOR=\"%s\">"           \      "%s %s %d</TH></TR>\n",GREY,msg_mtot_ms,l_month[cur_month-1],cur_year);   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");   /* Total Hits */   fprintf(out_fp,"<TR><TD WIDTH=380><FONT SIZE=\"-1\">%s</FONT></TD>\n"     \      "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%lu</B>"               \      "</FONT></TD></TR>\n",msg_mtot_th,t_hit);   /* Total Files */   fprintf(out_fp,"<TR><TD WIDTH=380><FONT SIZE=\"-1\">%s</FONT></TD>\n"     \      "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%lu</B>"               \      "</FONT></TD></TR>\n",msg_mtot_tf,t_file);   /* Total Pages */   fprintf(out_fp,"<TR><TD WIDTH=380><FONT SIZE=\"-1\">%s %s</FONT></TD>\n"  \      "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%lu</B>"               \      "</FONT></TD></TR>\n",msg_h_total, msg_h_pages, t_page);   /* Total Visits */   fprintf(out_fp,"<TR><TD WIDTH=380><FONT SIZE=\"-1\">%s %s</FONT></TD>\n"  \      "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%lu</B>"               \      "</FONT></TD></TR>\n",msg_h_total, msg_h_visits, t_visit);   /* Total XFer */   fprintf(out_fp,"<TR><TD WIDTH=380><FONT SIZE=\"-1\">%s</FONT></TD>\n"     \      "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%.0f</B>"              \      "</FONT></TD></TR>\n",msg_mtot_tx,t_xfer/1024);   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");   /**********************************************/   /* Unique Sites */   fprintf(out_fp,"<TR>"                                                     \      "<TD WIDTH=380><FONT SIZE=\"-1\">%s</FONT></TD>\n"                     \      "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%lu</B>"               \      "</FONT></TD></TR>\n",msg_mtot_us,t_site);   /* Unique URL's */   fprintf(out_fp,"<TR>"                                                     \      "<TD WIDTH=380><FONT SIZE=\"-1\">%s</FONT></TD>\n"                     \      "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%lu</B>"               \      "</FONT></TD></TR>\n",msg_mtot_uu,t_url);   /* Unique Referrers */   if (t_ref != 0)   fprintf(out_fp,"<TR>"                                                     \      "<TD WIDTH=380><FONT SIZE=\"-1\">%s</FONT></TD>\n"                     \      "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%lu</B>"               \      "</FONT></TD></TR>\n",msg_mtot_ur,t_ref);   /* Unique Usernames */   if (t_user != 0)   fprintf(out_fp,"<TR>"                                                     \      "<TD WIDTH=380><FONT SIZE=\"-1\">%s</FONT></TD>\n"                     \      "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%lu</B>"               \      "</FONT></TD></TR>\n",msg_mtot_ui,t_user);   /* Unique Agents */   if (t_agent != 0)   fprintf(out_fp,"<TR>"                                                     \      "<TD WIDTH=380><FONT SIZE=\"-1\">%s</FONT></TD>\n"                     \      "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%lu</B>"               \      "</FONT></TD></TR>\n",msg_mtot_ua,t_agent);   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");   /**********************************************/   /* Hourly/Daily avg/max totals */   fprintf(out_fp,"<TR>"                                                     \      "<TH WIDTH=380 BGCOLOR=\"%s\"><FONT SIZE=-1 COLOR=\"%s\">.</FONT></TH>\n"\      "<TH WIDTH=65 BGCOLOR=\"%s\" ALIGN=right>"                             \      "<FONT SIZE=-1>%s </FONT></TH>\n"                                      \      "<TH WIDTH=65 BGCOLOR=\"%s\" ALIGN=right>"                             \      "<FONT SIZE=-1>%s </FONT></TH></TR>\n",      GREY,GREY,GREY,msg_h_avg,GREY,msg_h_max);   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");   /* Max/Avg Hits per Hour */   fprintf(out_fp,"<TR>"                                                     \      "<TD><FONT SIZE=\"-1\">%s</FONT></TD>\n"                               \      "<TD ALIGN=right WIDTH=65><FONT SIZE=\"-1\"><B>%lu</B></FONT></TD>\n"  \      "<TD WIDTH=65 ALIGN=right><FONT SIZE=-1><B>%lu</B>"                    \      "</FONT></TD></TR>\n",msg_mtot_mhh, t_hit/(24*days_in_month),mh_hit);   /* Max/Avg Hits per Day */   fprintf(out_fp,"<TR>"                                                     \      "<TD><FONT SIZE=\"-1\">%s</FONT></TD>\n"                               \      "<TD ALIGN=right WIDTH=65><FONT SIZE=\"-1\"><B>%lu</B></FONT></TD>\n"  \      "<TD WIDTH=65 ALIGN=right><FONT SIZE=-1><B>%lu</B>"                    \      "</FONT></TD></TR>\n",msg_mtot_mhd, t_hit/days_in_month, max_hits);   /* Max/Avg Files per Day */   fprintf(out_fp,"<TR>"                                                     \      "<TD><FONT SIZE=\"-1\">%s</FONT></TD>\n"                               \      "<TD ALIGN=right WIDTH=65><FONT SIZE=\"-1\"><B>%lu</B></FONT></TD>\n"  \      "<TD WIDTH=65 ALIGN=right><FONT SIZE=-1><B>%lu</B>"                    \      "</FONT></TD></TR>\n",msg_mtot_mfd, t_file/days_in_month,max_files);   /* Max/Avg Pages per Day */   fprintf(out_fp,"<TR>"                                                     \      "<TD><FONT SIZE=\"-1\">%s</FONT></TD>\n"                               \      "<TD ALIGN=right WIDTH=65><FONT SIZE=\"-1\"><B>%lu</B></FONT></TD>\n"  \      "<TD WIDTH=65 ALIGN=right><FONT SIZE=-1><B>%lu</B>"                    \      "</FONT></TD></TR>\n",msg_mtot_mpd, t_page/days_in_month,max_pages);   /* Max/Avg Visits per Day */   fprintf(out_fp,"<TR>"                                                     \      "<TD><FONT SIZE=\"-1\">%s</FONT></TD>\n"                               \      "<TD ALIGN=right WIDTH=65><FONT SIZE=\"-1\"><B>%lu</B></FONT></TD>\n"  \      "<TD WIDTH=65 ALIGN=right><FONT SIZE=-1><B>%lu</B>"                    \      "</FONT></TD></TR>\n",msg_mtot_mvd, t_visit/days_in_month,max_visits);   /* Max/Avg KBytes per Day */   fprintf(out_fp,"<TR>"                                                     \      "<TD><FONT SIZE=\"-1\">%s</FONT></TD>\n"                               \      "<TD ALIGN=right WIDTH=65><FONT SIZE=\"-1\"><B>%.0f</B></FONT></TD>\n" \      "<TD WIDTH=65 ALIGN=right><FONT SIZE=-1><B>%.0f</B>"                   \      "</FONT></TD></TR>\n",msg_mtot_mkd,      (t_xfer/1024)/days_in_month,max_xfer/1024);   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");   /**********************************************/   /* response code totals */   fprintf(out_fp,"<TR><TH COLSPAN=3 ALIGN=center BGCOLOR=\"%s\">\n"         \           "<FONT SIZE=\"-1\">%s</FONT></TH></TR>\n",GREY,msg_mtot_rc);   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");   for (i=0;i<TOTAL_RC;i++)   {      if (response[i].count != 0)         fprintf(out_fp,"<TR><TD><FONT SIZE=\"-1\">%s</FONT></TD>\n"         \            "<TD ALIGN=right COLSPAN=2><FONT SIZE=\"-1\"><B>%lu</B>"         \            "</FONT></TD></TR>\n",            response[i].desc, response[i].count);   }   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");   /**********************************************/   fprintf(out_fp,"</TABLE>\n");   fprintf(out_fp,"<P>\n");}/*********************************************//* DAILY_TOTAL_TABLE - daily totals          *//*********************************************/void daily_total_table(){   int i;   /* Daily stats */   fprintf(out_fp,"<TABLE WIDTH=510 BORDER=2 CELLSPACING=1 CELLPADDING=1>\n");   fprintf(out_fp,"<TR><TH HEIGHT=4></TH></TR>\n");   /* Daily statistics for ... */   fprintf(out_fp,"<TR><TH BGCOLOR=\"%s\" COLSPAN=13 ALIGN=center>"          \

⌨️ 快捷键说明

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