📄 webalizer.h
字号:
#ifndef _WEBALIZER_H#define _WEBALIZER_H#define PCENT(val,max) ((val)?((double)val/(double)max)*100.0 : 0.0)#define IDX_2C(c1,c2) (((c1-'a'+1)<<5)+(c2-'a'+1) )#define IDX_3C(c1,c2,c3) (((c1-'a'+1)<<10)+((c2-'a'+1)<<5)+(c3-'a'+1) )#define IDX_4C(c1,c2,c3,c4) (((c1-'a'+1)<<15)+((c2-'a'+1)<<10)+((c3-'a'+1)<<5)+(c4-'a'+1) )#ifndef MAX#define MAX(a,b) ((a) > (b) ? (a) : (b))#endif#define MAXHASH 2048 /* Size of our hash tables */#define BUFSIZE 4096 /* Max buffer size for log record */#define MAXHOST 128 /* Max hostname buffer size */#define MAXURL 1024 /* Max HTTP request/URL field size */#define MAXURLH 128 /* Max URL field size in htab */#define MAXREF 1024 /* Max referrer field size */#define MAXREFH 128 /* Max referrer field size in htab */#define MAXAGENT 64 /* Max user agent field size */#define MAXCTRY 48 /* Max country name size */#define MAXSRCH 256 /* Max size of search string buffer */#define MAXSRCHH 64 /* Max size of search str in htab */#define MAXIDENT 64 /* Max size of ident string (user) */#define SLOP_VAL 3600 /* out of sequence slop (seconds) *//* Log types */#define LOG_CLF 0 /* CLF/combined log type */#define LOG_FTP 1 /* wu-ftpd xferlog type */#define LOG_SQUID 2 /* squid proxy log *//* Response code defines as per draft ietf HTTP/1.1 rev 6 */#define RC_CONTINUE 100#define RC_SWITCHPROTO 101#define RC_OK 200#define RC_CREATED 201#define RC_ACCEPTED 202#define RC_NONAUTHINFO 203#define RC_NOCONTENT 204#define RC_RESETCONTENT 205#define RC_PARTIALCONTENT 206#define RC_MULTIPLECHOICES 300#define RC_MOVEDPERM 301#define RC_MOVEDTEMP 302#define RC_SEEOTHER 303#define RC_NOMOD 304#define RC_USEPROXY 305#define RC_MOVEDTEMPORARILY 307#define RC_BAD 400#define RC_UNAUTH 401#define RC_PAYMENTREQ 402#define RC_FORBIDDEN 403#define RC_NOTFOUND 404#define RC_METHODNOTALLOWED 405#define RC_NOTACCEPTABLE 406#define RC_PROXYAUTHREQ 407#define RC_TIMEOUT 408#define RC_CONFLICT 409#define RC_GONE 410#define RC_LENGTHREQ 411#define RC_PREFAILED 412#define RC_REQENTTOOLARGE 413#define RC_REQURITOOLARGE 414#define RC_UNSUPMEDIATYPE 415#define RC_RNGNOTSATISFIABLE 416#define RC_EXPECTATIONFAILED 417#define RC_SERVERERR 500#define RC_NOTIMPLEMENTED 501#define RC_BADGATEWAY 502#define RC_UNAVAIL 503#define RC_GATEWAYTIMEOUT 504#define RC_BADHTTPVER 505/* Index defines for RC codes */#define IDX_UNDEFINED 0#define IDX_CONTINUE 1#define IDX_SWITCHPROTO 2#define IDX_OK 3#define IDX_CREATED 4 #define IDX_ACCEPTED 5 #define IDX_NONAUTHINFO 6 #define IDX_NOCONTENT 7 #define IDX_RESETCONTENT 8 #define IDX_PARTIALCONTENT 9 #define IDX_MULTIPLECHOICES 10 #define IDX_MOVEDPERM 11 #define IDX_MOVEDTEMP 12 #define IDX_SEEOTHER 13 #define IDX_NOMOD 14 #define IDX_USEPROXY 15 #define IDX_MOVEDTEMPORARILY 16#define IDX_BAD 17 #define IDX_UNAUTH 18 #define IDX_PAYMENTREQ 19 #define IDX_FORBIDDEN 20 #define IDX_NOTFOUND 21 #define IDX_METHODNOTALLOWED 22 #define IDX_NOTACCEPTABLE 23 #define IDX_PROXYAUTHREQ 24 #define IDX_TIMEOUT 25 #define IDX_CONFLICT 26 #define IDX_GONE 27 #define IDX_LENGTHREQ 28 #define IDX_PREFAILED 29 #define IDX_REQENTTOOLARGE 30 #define IDX_REQURITOOLARGE 31 #define IDX_UNSUPMEDIATYPE 32#define IDX_RNGNOTSATISFIABLE 33#define IDX_EXPECTATIONFAILED 34 #define IDX_SERVERERR 35 #define IDX_NOTIMPLEMENTED 36 #define IDX_BADGATEWAY 37 #define IDX_UNAVAIL 38 #define IDX_GATEWAYTIMEOUT 39 #define IDX_BADHTTPVER 40 #define TOTAL_RC 41#ifdef USE_DNS#include <netinet/in.h> /* needed for in_addr structure definition */#ifndef INADDR_NONE#define INADDR_NONE 0xFFFFFFFF#endif /* INADDR_NONE */#endif/* Response code structure */struct response_code { char *desc; /* response code struct */ u_long count; };/* Country code structure */struct country_code { u_long idx; char *desc; u_long count; u_long files; double xfer; };typedef struct country_code *CLISTPTR;/* log record structure */struct log_struct { char hostname[MAXHOST]; /* hostname */ char datetime[29]; /* raw timestamp */ char url[MAXURL]; /* raw request field */ int resp_code; /* response code */ u_long xfer_size; /* xfer size in bytes */#ifdef USE_DNS struct in_addr addr; /* IP address structure */#endif /* USE_DNS */ char refer[MAXREF]; /* referrer */ char agent[MAXAGENT]; /* user agent (browser) */ char srchstr[MAXSRCH]; /* search string */ char ident[MAXIDENT]; }; /* ident string (user) */extern struct log_struct log_rec;extern char *version ; /* program version */extern char *editlvl ; /* edit level */extern char *moddate ; /* modification date */extern char *copyright ;extern int verbose ; /* 2=verbose,1=err, 0=none */ extern int debug_mode ; /* debug mode flag */extern int time_me ; /* timing display flag */extern int local_time ; /* 1=localtime 0=GMT (UTC) */extern int ignore_hist ; /* history flag (1=skip) */extern int hourly_graph ; /* hourly graph display */extern int hourly_stats ; /* hourly stats table */extern int daily_graph ; /* daily graph display */extern int daily_stats ; /* daily stats table */extern int ctry_graph ; /* country graph display */extern int shade_groups ; /* Group shading 0=no 1=yes */extern int hlite_groups ; /* Group hlite 0=no 1=yes */extern int mangle_agent ; /* mangle user agents */extern int incremental ; /* incremental mode 1=yes */extern int use_https ; /* use 'https://' on URL's */extern int visit_timeout; /* visit timeout (30 min) */extern int graph_legend ; /* graph legend (1=yes) */extern int graph_lines ; /* graph lines (0=none) */extern int fold_seq_err ; /* fold seq err (0=no) */extern int log_type ; /* (0=clf, 1=ftp, 2=squid) */extern int group_domains; /* Group domains 0=none */extern int hide_sites ; /* Hide ind. sites (0=no) */extern char *hname ; /* hostname for reports */extern char *state_fname ; /* run state file name */extern char *hist_fname ; /* name of history file */extern char *html_ext ; /* HTML file prefix */extern char *dump_ext ; /* Dump file prefix */extern char *conf_fname ; /* name of config file */extern char *log_fname ; /* log file pointer */extern char *out_dir ; /* output directory */extern char *blank_str ; /* blank string */extern char *dns_cache ; /* DNS cache file name */extern int dns_children ; /* # of DNS children */extern int ntop_sites ; /* top n sites to display */extern int ntop_sitesK ; /* top n sites (by kbytes) */extern int ntop_urls ; /* top n url's to display */extern int ntop_urlsK ; /* top n url's (by kbytes) */extern int ntop_entry ; /* top n entry url's */extern int ntop_exit ; /* top n exit url's */extern int ntop_refs ; /* top n referrers "" */extern int ntop_agents ; /* top n user agents "" */extern int ntop_ctrys ; /* top n countries "" */extern int ntop_search ; /* top n search strings */extern int ntop_users ; /* top n users to display */extern int all_sites ; /* List All sites (0=no) */extern int all_urls ; /* List All URL's (0=no) */extern int all_refs ; /* List All Referrers */extern int all_agents ; /* List All User Agents */extern int all_search ; /* List All Search Strings */extern int all_users ; /* List All Usernames */extern int dump_sites ; /* Dump tab delimited sites */extern int dump_urls ; /* URL's */extern int dump_refs ; /* Referrers */extern int dump_agents ; /* User Agents */extern int dump_users ; /* Usernames */extern int dump_search ; /* Search strings */extern int dump_header ; /* Dump header as first rec */extern char *dump_path ; /* Path for dump files */extern u_long cur_tstamp; /* Current timestamp */extern u_long epoch; /* used for timestamp adj. */extern int check_dup; /* check for dups flag */extern int cur_year,cur_month, /* year/month/day/hour */ cur_day, cur_hour, /* tracking variables */ cur_min, cur_sec;extern double t_xfer; /* monthly total xfer value */extern u_long t_hit, t_file, t_site, /* monthly total vars */ t_url, t_ref, t_agent, t_page,t_visit,t_user;extern double tm_xfer[31]; /* daily transfer totals */extern u_long tm_hit[31], tm_file[31], /* daily total arrays */ tm_site[31],tm_page[31], tm_visit[31];extern u_long dt_site; /* daily 'sites' total */extern u_long ht_hit,mh_hit; /* hourly hits totals */extern u_long th_hit[24], th_file[24], /* hourly total arrays */ th_page[24];extern double th_xfer[24];extern int f_day,l_day; /* first/last day vars */extern int gz_log; /* flag for zipped log */extern CLISTPTR *top_ctrys; /* Top countries table *//* define our externally visable functions */extern char *cur_time();extern u_long ctry_idx(char *);extern void init_counters();extern int ispage(char *);extern u_long jdate(int,int,int);#endif /* _WEBALIZER_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -