亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? robottxt.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
字號:
/***	@(#) $Id: RobotTxt.c,v 1.4 1999/02/22 22:10:12 frystyk Exp $**	**	W3C Webbot can be found at "http://www.w3.org/Robot/"**	**	Copyright 仼 1995-1998 World Wide Web Consortium, (Massachusetts**	Institute of Technology, Institut National de Recherche en**	Informatique et en Automatique, Keio University). All Rights**	Reserved. This program is distributed under the W3C's Software**	Intellectual Property License. This program is distributed in the hope**	that it will be useful, but WITHOUT ANY WARRANTY; without even the**	implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR**	PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more**	details.****  Authors:**	JP		John Punin****  History:**	Oct 1998	Written*/#include "HTRobMan.h"#include "RobotTxt.h"PUBLIC UserAgent * new_user_agent (void){    UserAgent * ua;    if ((ua = (UserAgent *) HT_CALLOC(1, sizeof(UserAgent))) == NULL)        HT_OUTOFMEM("new_user_agent");    ua->disallow = HTList_new();    return ua;}PUBLIC char * get_name_user_agent (UserAgent * ua){    return ua ? ua->name : NULL;}PUBLIC HTList * get_disallow_user_agent (UserAgent * ua){    return ua ? ua->disallow : NULL;}PUBLIC BOOL set_name_user_agent (UserAgent * ua, char * name){    if (ua && name) {	StrAllocCopy(ua->name, name);	return YES;    }    return NO;}PUBLIC BOOL add_disallow_user_agent (UserAgent * ua, char * disallow){    if (ua && disallow) {	char * da = NULL;	StrAllocCopy(da, disallow);	/* @@@ Should be an association list (HTAssocList) @@@ */	return HTList_addObject(ua->disallow, da);    }    return NO;}PUBLIC BOOL delete_user_agent (UserAgent * ua){    if (ua) {	HT_FREE(ua->name);	if (ua->disallow) {	    HTList *cur = ua->disallow;	    char *pres;	    while ((pres = (char *) HTList_nextObject(cur)))		HT_FREE(pres);	    HTList_delete(ua->disallow);	}	return YES;    }    return NO;}PUBLIC BOOL delete_all_user_agents(HTList *user_agents){    if (user_agents) {	HTList *cur = user_agents;	UserAgent *pres;	while ((pres = (UserAgent *) HTList_nextObject(cur)))	    delete_user_agent(pres);	return HTList_delete(user_agents);    }    return NO;}PUBLIC char * get_regular_expression (HTList * user_agents, char * name_robot){    if (user_agents && name_robot) {	HTChunk *ch = HTChunk_new (1024);	HTList *cur = user_agents;	UserAgent *pres;	UserAgent *ua_gen=NULL;	int found=0;	while ((pres = (UserAgent *) HTList_nextObject(cur))) {	    char *name = get_name_user_agent(pres);	    if(!strcmp(name,"*"))		ua_gen = pres;	    if(!strcmp(name,name_robot)) {		put_string_disallow(ch,pres);		found = 1;	    }	}	if(!found && ua_gen) put_string_disallow(ch,ua_gen);	return (HTChunk_toCString (ch));    }    return NULL;}PUBLIC BOOL put_string_disallow (HTChunk * ch, UserAgent * ua){    if (ch && ua) {	HTList *cur = get_disallow_user_agent(ua);	char *pres;	int first = 1;  	while ((pres = (char *) HTList_nextObject(cur))) {	    if(!first)		HTChunk_puts (ch,"|");	    else		first = 0;	    HTChunk_puts (ch,pres);	}	return YES;    }    return NO;}PUBLIC void print_user_agent(UserAgent *ua){  HTList *cur = ua->disallow;  char *pres;  HTTRACE(APP_TRACE, "User Agent : %s \n" _ ua->name);  while ((pres = (char*) HTList_nextObject(cur)))      HTTRACE(APP_TRACE, "Disallow : %s \n" _ pres);}PUBLIC void print_all_user_agents(HTList * user_agents){    HTList *cur = user_agents;    UserAgent *pres;    while ((pres = (UserAgent *) HTList_nextObject(cur)))    {	HTTRACE(APP_TRACE, "\nNew User Agent\n");	print_user_agent(pres);    }}PUBLIC HTList * get_all_user_agents(char * rob_str){    if (rob_str) {	char * ptr = rob_str;	HTList * user_agents = HTList_new();	/* skip blank spaces */	while(isspace((int)*ptr))	    ptr++;	/* skip comments */	ptr = skip_comments(ptr);	if(!get_user_agents(ptr,user_agents))	    HTTRACE(APP_TRACE, "Something is wrong in robots.txt\n");	return user_agents;    }    return NULL;}PUBLIC char * skip_comments(char *ptr){    if (ptr && *ptr == '#') {	do {	    while(*ptr != '\n')		ptr++;	    while(isspace((int)*ptr))		ptr++;	} while (*ptr == '#');    }    return ptr;}PUBLIC void scan_name_until_eoline(char *robot_str, char *name){  char *ptr = robot_str;  char *ntr = name;  while(*ptr != '\n' && *ptr != '#')    {      *ntr = *ptr;      ntr++; ptr++;      if(*ptr == '\0')	break;    }  *ntr = '\0';}PUBLIC void scan_name_until_space(char *robot_str, char *name){  char *ptr = robot_str;  char *ntr = name;  while(!isspace((int)*ptr) && *ptr != '#')    {      *ntr = *ptr;      ntr++; ptr++;      if(*ptr == '\0')	break;    }  *ntr = '\0';}PUBLIC BOOL get_user_agents(char * ptr, HTList *user_agents){  char *uastr = "user-agent:";  char *disstr = "disallow:";  int luastr = 10;  int ldisstr = 9;  char name[2000];  int indices[200];  int i = 0;  if (ptr && !strncasecomp(ptr,uastr,luastr)) {      UserAgent *ua = NULL;      do {	i=0;	do {	  ua = new_user_agent();	  HTList_appendObject(user_agents,(void *)ua);	  indices[i++] = HTList_indexOf(user_agents, (void *)ua);	  ptr += luastr + 1;	  while(isspace((int)*ptr))	    ptr++;	  scan_name_until_eoline(ptr,name); 	  ptr += strlen(name) + 1;	  while(isspace((int)*ptr))	    ptr++;	  ptr = skip_comments(ptr);	  set_name_user_agent(ua,name);	} while(!strncasecomp(ptr,uastr,luastr));	if(!strncasecomp(ptr, disstr,ldisstr))	  {	    do {	      ptr += ldisstr + 1;	      scan_name_until_space(ptr,name); 	      ptr += strlen(name) + 1;	      while(isspace((int)*ptr))		ptr++;	      ptr = skip_comments(ptr);	      if(i==1)		add_disallow_user_agent(ua,name);	      else		{		  int j;		  for(j = 0 ; j < i ; j++)		    {		      ua = HTList_objectAt(user_agents, indices[j]);		      add_disallow_user_agent(ua,name);		    }		}	    } while(!strncasecomp(ptr,disstr,ldisstr));	  }	else	  return NO;      } while(!strncasecomp(ptr,uastr,luastr));      return YES;    }  else    return NO;}PUBLIC char * scan_robots_txt(char *rob_str, char *name_robot){  char *reg_exp_exclude = NULL;  HTList * user_agents = get_all_user_agents(rob_str);  /*print_all_user_agents(user_agents);*/  reg_exp_exclude = get_regular_expression(user_agents, name_robot);  delete_all_user_agents(user_agents);  return reg_exp_exclude;}#ifdef ROBOTS_TXT_STANDALONEint main(int argc, char *argv[]){  char *text;  char *reg_exp;  char *filename= argc > 1 ? argv[1] : "robots.txt";  FILE *fp;  struct stat statb;  /* make sure the file is a regular text file and open it */  if(stat(filename, &statb) == -1 ||     (statb.st_mode & S_IFMT ) != S_IFREG ||     !(fp = fopen(filename, "r")))     {      if((statb.st_mode & S_IFMT) == S_IFREG)	perror(filename);      else	HTTRACE(ALL_TRACE, "%s : not a regular file \n" _ filename);      return 1;    }  if(!(text = malloc((unsigned)(statb.st_size +1))))    {      HTTRACE(ALL_TRACE, "Can't alloc enough space for %s" _ filename);      fclose(fp);      return;    }  if(!fread(text,sizeof(char), statb.st_size + 1, fp))    HTTRACE(APP_TRACE, "Warning: may not have read entire file!\n");  text[statb.st_size] = 0; /* be sure to NULL-terminate */  fclose(fp);  if(argc > 2)    {      reg_exp = scan_robots_txt(text,argv[2]);      if(reg_exp)	{	  HTTRACE(ALL_TRACE, "REG EXP : %s \n" _ reg_exp);	  free(reg_exp);	}    }  free(text);  return 0;}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕一区二区三区视频| 日日摸夜夜添夜夜添精品视频| 亚洲五码中文字幕| 成人免费观看男女羞羞视频| 精品日韩av一区二区| 日本成人在线看| 欧美日韩久久久久久| 亚洲图片一区二区| 精品视频在线视频| 亚洲成a人片在线观看中文| 99re亚洲国产精品| 中文字幕一区二区三区在线观看 | 日本高清无吗v一区| 一区二区三区中文免费| 色婷婷激情综合| 午夜精品一区二区三区电影天堂| 99国产欧美另类久久久精品| 一区二区三区国产| 精品视频在线视频| 久久精品二区亚洲w码| 精品国产乱码久久久久久牛牛| 久久99精品久久只有精品| 精品国产一区二区亚洲人成毛片| 九九九精品视频| 中文字幕乱码亚洲精品一区| 99r精品视频| 蜜桃91丨九色丨蝌蚪91桃色| 国产清纯美女被跳蛋高潮一区二区久久w| 国产精品一区二区免费不卡| 亚洲视频 欧洲视频| 在线成人小视频| av激情成人网| 麻豆成人91精品二区三区| 国产精品久久久一本精品| 欧美丝袜自拍制服另类| 国产成人av电影免费在线观看| 亚洲毛片av在线| 欧美国产欧美亚州国产日韩mv天天看完整| 成人午夜激情视频| 久久aⅴ国产欧美74aaa| 亚洲在线中文字幕| 中文一区二区完整视频在线观看| 欧美日韩精品一区二区在线播放| 国产精品一区一区| 天天亚洲美女在线视频| 亚洲黄色在线视频| 国产精品家庭影院| 国产精品精品国产色婷婷| 久久综合精品国产一区二区三区| 久久九九国产精品| jizzjizzjizz欧美| 五月婷婷另类国产| 亚洲日本青草视频在线怡红院 | 精品国产欧美一区二区| 欧美日韩视频在线第一区| 不卡电影一区二区三区| 成人性生交大片免费看中文| 国产一区在线视频| 久久精品国产一区二区三| 国产日韩精品一区二区浪潮av | 国产亚洲一区字幕| 国产欧美日韩在线视频| 国产精品免费网站在线观看| 中文字幕 久热精品 视频在线| 国产三级精品三级在线专区| 欧美国产日韩一二三区| 亚洲美女视频在线| 日韩福利视频导航| 成人综合激情网| 欧美色大人视频| 337p粉嫩大胆噜噜噜噜噜91av| 精品日本一线二线三线不卡| 国产视频911| 午夜在线电影亚洲一区| 国产乱子轮精品视频| 欧美一级夜夜爽| 精品国免费一区二区三区| 欧美高清精品3d| 国产欧美一区二区在线| 日韩免费成人网| 久久人人爽爽爽人久久久| 欧美日韩三级在线| 91久久精品网| 国产精品色呦呦| 亚洲人成亚洲人成在线观看图片| 天堂精品中文字幕在线| 大胆欧美人体老妇| 国产精品拍天天在线| 美国十次了思思久久精品导航| 激情综合色综合久久| 色呦呦一区二区三区| 日韩欧美国产综合在线一区二区三区| 欧美高清在线视频| 青娱乐精品视频| 色屁屁一区二区| 亚洲综合图片区| 成人少妇影院yyyy| 中文字幕精品三区| 国产在线麻豆精品观看| 欧美精品精品一区| 亚洲一区二区四区蜜桃| 99久久婷婷国产综合精品电影 | 美女视频黄免费的久久 | 欧美做爰猛烈大尺度电影无法无天| 久久女同性恋中文字幕| 日韩国产精品久久久| 色噜噜偷拍精品综合在线| 国产精品久久网站| 99久久er热在这里只有精品15| 综合av第一页| 欧美日韩国产免费| 日日欢夜夜爽一区| 日韩视频一区二区在线观看| 日韩vs国产vs欧美| 欧美日本一区二区三区四区| 亚洲综合成人在线视频| 欧美精品高清视频| 国产乱码精品1区2区3区| 久久精品免费在线观看| 99九九99九九九视频精品| 亚洲男人的天堂网| 色女孩综合影院| 日本中文字幕一区| 国产精品网站一区| 日韩欧美精品在线视频| 国产99久久久国产精品潘金| 精品一区二区久久久| 91精品欧美久久久久久动漫 | 亚洲精品你懂的| wwwwww.欧美系列| 欧洲一区二区三区免费视频| 国产成人免费9x9x人网站视频| 一区二区中文字幕在线| 4438x亚洲最大成人网| 成人妖精视频yjsp地址| 免费精品视频在线| 亚洲欧美国产高清| 国产精品无遮挡| 精品欧美乱码久久久久久| 成人精品鲁一区一区二区| 亚洲一区二区在线免费看| 中文字幕欧美激情一区| 日韩免费高清电影| 欧美精品xxxxbbbb| 欧美久久久久久久久中文字幕| 丰满岳乱妇一区二区三区| 麻豆成人久久精品二区三区红| 亚洲国产aⅴ成人精品无吗| 久久精品人人做人人综合| 日韩一级高清毛片| 欧美日本在线看| 3atv一区二区三区| 日韩一卡二卡三卡| 18欧美亚洲精品| 国产日韩欧美不卡在线| 日韩精品一区二区三区老鸭窝| 欧美高清视频www夜色资源网| 欧美日韩一区三区| 欧美精品自拍偷拍动漫精品| 欧洲人成人精品| 欧美久久久久久久久久| 91精品蜜臀在线一区尤物| 欧美精品三级在线观看| 91精品国产aⅴ一区二区| 欧美一二三区精品| 一区二区不卡在线播放| 亚洲成av人在线观看| 久久国产尿小便嘘嘘| 国产精品1区2区3区| 99视频有精品| 欧美美女黄视频| 精品久久久网站| 亚洲精品日日夜夜| 精品伊人久久久久7777人| 成人精品视频网站| 欧美一区二区三区视频在线| 久久亚洲免费视频| 一区二区三区免费看视频| 国产精品影视在线观看| 欧美在线看片a免费观看| 久久久久亚洲蜜桃| 亚洲va欧美va国产va天堂影院| 狠狠久久亚洲欧美| 欧美日韩久久久一区| ...av二区三区久久精品| 麻豆91在线观看| 色婷婷久久久亚洲一区二区三区| 欧美美女喷水视频| 亚洲男同1069视频| 国产91高潮流白浆在线麻豆 | av中文字幕亚洲| 欧美成人bangbros| 日本不卡一二三| 亚洲国产cao| av福利精品导航| 久久久国产一区二区三区四区小说| 亚洲制服丝袜在线| 色综合久久88色综合天天6| 国产欧美一区二区精品久导航 | 成人网在线免费视频|