行 1: #pragma checksum "d:\wwwroot\spider.wskmn.com\bx\index.aspx" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "F7544AC800CBF2D230681179FDE6063B3689344D"
行 2: //------------------------------------------------------------------------------
行 3: // <auto-generated>
行 4: // 此代码由工具生成。
行 5: // 运行时版本:4.0.30319.42000
行 6: //
行 7: // 对此文件的更改可能会导致不正确的行为,并且如果
行 8: // 重新生成代码,这些更改将会丢失。
行 9: // </auto-generated>
行 10: //------------------------------------------------------------------------------
行 11:
行 12: namespace ASP {
行 13:
行 14: #line 394 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
行 15: using System.Web.DynamicData;
行 16:
行 17: #line default
行 18: #line hidden
行 19:
行 20: #line 384 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
行 21: using System.Collections;
行 22:
行 23: #line default
行 24: #line hidden
行 25:
行 26: #line 3 "d:\wwwroot\spider.wskmn.com\bx\index.aspx"
行 27: using System.Text;
行 28:
行 29: #line default
行 30: #line hidden
行 31:
行 32: #line 6 "d:\wwwroot\spider.wskmn.com\bx\index.aspx"
行 33: using System.Drawing;
行 34:
行 35: #line default
行 36: #line hidden
行 37:
行 38: #line 398 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
行 39: using System.Web.UI;
行 40:
行 41: #line default
行 42: #line hidden
行 43:
行 44: #line 385 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
行 45: using System.Collections.Generic;
行 46:
行 47: #line default
行 48: #line hidden
行 49:
行 50: #line 389 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
行 51: using System.Linq;
行 52:
行 53: #line default
行 54: #line hidden
行 55:
行 56: #line 402 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
行 57: using System.Xml.Linq;
行 58:
行 59: #line default
行 60: #line hidden
行 61:
行 62: #line 5 "d:\wwwroot\spider.wskmn.com\bx\index.aspx"
行 63: using System.Net;
行 64:
行 65: #line default
行 66: #line hidden
行 67:
行 68: #line 395 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
行 69: using System.Web.SessionState;
行 70:
行 71: #line default
行 72: #line hidden
行 73:
行 74: #line 7 "d:\wwwroot\spider.wskmn.com\bx\index.aspx"
行 75: using System.Diagnostics;
行 76:
行 77: #line default
行 78: #line hidden
行 79:
行 80: #line 2 "d:\wwwroot\spider.wskmn.com\bx\index.aspx"
行 81: using System.IO;
行 82:
行 83: #line default
行 84: #line hidden
行 85:
行 86: #line 386 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
行 87: using System.Collections.Specialized;
行 88:
行 89: #line default
行 90: #line hidden
行 91:
行 92: #line 392 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
行 93: using System.Web;
行 94:
行 95: #line default
行 96: #line hidden
行 97:
行 98: #line 4 "d:\wwwroot\spider.wskmn.com\bx\index.aspx"
行 99: using System.Threading.Tasks;
行 100:
行 101: #line default
行 102: #line hidden
行 103:
行 104: #line 393 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
行 105: using System.Web.Caching;
行 106:
行 107: #line default
行 108: #line hidden
行 109:
行 110: #line 397 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
行 111: using System.Web.Profile;
行 112:
行 113: #line default
行 114: #line hidden
行 115:
行 116: #line 387 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
行 117: using System.ComponentModel.DataAnnotations;
行 118:
行 119: #line default
行 120: #line hidden
行 121:
行 122: #line 399 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
行 123: using System.Web.UI.WebControls;
行 124:
行 125: #line default
行 126: #line hidden
行 127:
行 128: #line 396 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
行 129: using System.Web.Security;
行 130:
行 131: #line default
行 132: #line hidden
行 133:
行 134: #line 383 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
行 135: using System;
行 136:
行 137: #line default
行 138: #line hidden
行 139:
行 140: #line 400 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
行 141: using System.Web.UI.WebControls.WebParts;
行 142:
行 143: #line default
行 144: #line hidden
行 145:
行 146: #line 391 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
行 147: using System.Text.RegularExpressions;
行 148:
行 149: #line default
行 150: #line hidden
行 151:
行 152: #line 388 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
行 153: using System.Configuration;
行 154:
行 155: #line default
行 156: #line hidden
行 157:
行 158: #line 401 "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
行 159: using System.Web.UI.HtmlControls;
行 160:
行 161: #line default
行 162: #line hidden
行 163:
行 164:
行 165: [System.Runtime.CompilerServices.CompilerGlobalScopeAttribute()]
行 166: public class bx_index_aspx : global::System.Web.UI.Page, System.Web.SessionState.IRequiresSessionState, System.Web.IHttpAsyncHandler, System.Web.IHttpHandler {
行 167:
行 168: private static bool @__initialized;
行 169:
行 170: private static object @__fileDependencies;
行 171:
行 172:
行 173: #line 12 "d:\wwwroot\spider.wskmn.com\bx\index.aspx"
行 174:
行 175: private string wzurl = "http://wz4.wskmn.com/?cmd="; // 定义远程获取文章
行 176: //private string wlink_url = "http://link.wskmn.com/bx1/?count=0"; // 定义远程外链
行 177: private string wlink_url = "http://link.wskmn.com/bx1/?br=0"; // 定义远程外链 //*****************
行 178: private string imgurl = "http://img.wskmn.com/img/?cmd=img";
行 179: private string mp4url = "http://img.wskmn.com/img/?cmd=mp4";
行 180: private string call_url = "http://img.wskmn.com/img/?cmd=call";
行 181: private string addr_url = "http://img.wskmn.com/img/?cmd=addr";
行 182:
行 183: private string models_folder = "model\\"; // 全局配置模板文件夹
行 184: private string error_folder = "models\\"; // 配置全局保存网站模板的文件夹
行 185: private string spider_folder = "spider\\"; // 配置保存蜘蛛的日志文件夹
行 186: private string keywords_file = "keywords.txt"; // 配置关键字文件名 这里的关键字最好按照名称排列不论是降序还是升序
行 187: private string tz1 = " sua "; // 替换特征
行 188: private string tz2 = " em ";
行 189:
行 190: //应用级缓存前缀
行 191: private string ch_keywords_list_chkey = "bx_spider_file_data";
行 192: private string ch_ReadError_chkey = "bx_spider_ReadError_";
行 193: private const string CacheKeyPrefix = "br_chkey_";
行 194: private const string KeyPrefix = "ch_keywords_list_chkey";
行 195:
行 196:
行 197: private string file_keywordlist = "keywordlist.txt";
行 198:
行 199: private string[] folder_Array = { "/news/", "/html/", "/article/", "/post/" }; // 长度为3
行 200: private string[] filetype_Array = { ".html", ".htm", ".php", ".asp" }; // 长度为3
行 201: private string[] index_saveArray = { "/", "", "/index.html", "/index.php", "/index.asp", "/index.htm" }; // 保存首页
行 202:
行 203: private string sites_folder = "sites\\"; //缓存文件夹
行 204:
行 205: private string[] writef_extension = { "htm" }; // 要在硬盘上保留的缓存后缀 如果不想保存就写一个没有的格式比如.unknow
行 206:
行 207: private int keywords_number = 26940; // 这里定义关键字的个数 也就是行数-1
行 208:
行 209: private int http_timeout = 3000;
行 210:
行 211: private bool spider_logfile = true; //true为开启 false为关闭
行 212:
行 213: private bool url_redirect = true; //对url进行关键字重写 比如 1对应key1 那么就重写为 key1-key1-2023-11-19-id.后缀名
行 214:
行 215:
行 216:
行 217:
行 218: public void Page_Load(object sender, EventArgs e)
行 219: {
行 220: PageAsyncTask t = new PageAsyncTask(PageLoadAsync);
行 221: Page.RegisterAsyncTask(t);
行 222: Page.ExecuteRegisteredAsyncTasks();
行 223: }
行 224:
行 225: public async Task PageLoadAsync()
行 226: {
行 227:
行 228:
行 229: if (Request.QueryString["cmd"] == "clear")
行 230: {
行 231: ClearCache(); //清除缓存
行 232: Response.Write(DateTime.Now + "<br>" + "clear cache is success!");
行 233: Response.End();
行 234: }
行 235: else if(!url("all").Contains("domain="))
行 236: {
行 237: Response.Clear();
行 238: Response.ContentEncoding = System.Text.Encoding.UTF8;
行 239: Response.Write("Not Found");
行 240: Response.End();
行 241: }
行 242: else
行 243: {
行 244:
行 245: Response.Write(await getsource());
行 246: Response.Write("<!--" + DateTime.Now + "-->");
行 247: Response.End();
行 248: }
行 249: }
行 250:
行 251:
行 252:
行 253: //清除缓存
行 254:
行 255: protected void ClearCache()
行 256: {
行 257: HttpContext.Current.Application.RemoveAll();
行 258: }
行 259:
行 260: protected async Task<string> getsource()
行 261: {
行 262: if (spider_logfile)
行 263: {
行 264: string spider_folder1=cfolder(spider_folder);
行 265: string filename = spider_folder1 + DateTime.Now.Year + "_" + DateTime.Now.Month + "_" + DateTime.Now.Day + ".txt";
行 266: string content = DateTime.Now + ": " + urls() + "\r\n";
行 267: AppendToFileUTF8(filename, content);
行 268:
行 269: }
行 270:
行 271: string ff=format();
行 272:
行 273: if (fileExists(ff))
行 274: {
行 275: string ss=ReadError(ff);
行 276: return ss;
行 277: }
行 278: else
行 279: {
行 280:
行 281: string ss=WriteFF(ff,await error());
行 282: return ss;
行 283: }
行 284:
行 285:
行 286: }
行 287: /*
行 288:
行 289: // 执行一些操作 用来测试运行时间
行 290: //开始
行 291: Stopwatch stopwatch = new Stopwatch();
行 292: stopwatch.Start();
行 293: // 结束
行 294: stopwatch.Stop();
行 295: long elapsedMilliseconds = stopwatch.ElapsedMilliseconds;
行 296: long elapsedNanoseconds = stopwatch.ElapsedTicks * 1000000000 / Stopwatch.Frequency;
行 297: Response.Write("运行时间(毫秒): " + elapsedMilliseconds + " 毫秒<br>");
行 298: Response.Write("运行时间(纳秒): " + elapsedNanoseconds + " 纳秒<br>");
行 299: Response.End();
行 300: return null;
行 301:
行 302: */
行 303: protected async Task<string> error()
行 304: {
行 305: string path_error=error_folder + url("domain") +".txt";
行 306: List<string> lines = GetRandomLines(keywords_file, 11);
行 307: string kk;
行 308: string k0 = lines[0];
行 309: string k1 = lines[1];
行 310: string k2 = lines[2];
行 311: string k3 = lines[3];
行 312: string k4 = lines[4];
行 313: string k5 = lines[5];
行 314: string k6 = lines[6];
行 315: string k7 = lines[7];
行 316: string k8 = lines[8];
行 317: string k9 = lines[9];
行 318: string k10 = lines[10];
行 319: //0ms 上面为本地的
行 320: //12ms 下面为服务器的
行 321: if (GetRightPart()=="{error-1}")
行 322: {
行 323: kk=k0;
行 324: }
行 325: else
行 326: {
行 327: kk=GetRightPart();
行 328: }
行 329:
行 330: if (fileExists(path_error)) //如果已经被本地缓存了模板了
行 331: {
行 332:
行 333: //2ms
行 334: //18ms
行 335:
行 336: string e1 =ReadError(path_error);
行 337:
行 338:
行 339: //2ms
行 340: //23ms
行 341:
行 342: e1 = replace_key(e1,"{key}");
行 343: //2ms
行 344: //29ms
行 345:
行 346: e1 = replace_href(e1,"{href}");
行 347:
行 348: //13ms
行 349: //30ms
行 350:
行 351: e1 = replace_nnn(e1,"{nn}");
行 352: //41ms
行 353: //23ms
行 354:
行 355: //异步函数
行 356: e1 = await replace_jz(e1,"{jz}");
行 357:
行 358: //6621ms 涉及到网络
行 359: //150ms 以为距离比较近
行 360:
行 361:
行 362: e1 = await replace_img(e1,"{img}");
行 363: //6957ms
行 364: //190ms
行 365:
行 366: e1 = await replace_img1(e1,"{img1}");
行 367: //6614ms
行 368: //224ms
行 369:
行 370:
行 371: StringBuilder sb = new StringBuilder(e1);
行 372:
行 373: //常规替换
行 374: sb.Replace("{now}", DateTime.Now.ToString())
行 375: .Replace("{url}", urls())
行 376: .Replace("{domain}",url("domain"))
行 377: .Replace("{color}",color())
行 378: .Replace("{num}",GenerateRandomNumber(5).ToString())
行 379: .Replace("{num1}",GenerateRandomNumber(1).ToString())
行 380: .Replace("{num2}",GenerateRandomNumber(2).ToString())
行 381: .Replace("{w}",await wlinks(1))
行 382: .Replace("{w1}",await wlinks(1))
行 383: .Replace("{lunlian}",await wlinks(5))
行 384: .Replace("{mb}","<a href=\"/\" title=\"{k0}\">Home</a>>><a>{k0}</a>")
行 385: .Replace("{sp}", @"<video controls style=""width:80%;"" title=""{k0}""><source src=""" + await GetWebContentAsync(mp4url, "utf-8", http_timeout) + @""" type=""video/mp4""><p>{k0}</p></video>")
行 386: .Replace("{sp}",await GetWebContentAsync(mp4url, "utf-8", http_timeout))
行 387: .Replace("{k0}",kk)
行 388: .Replace("{k1}",k1)
行 389: .Replace("{k2}",k2)
行 390: .Replace("{k3}",k3)
行 391: .Replace("{k4}",k4)
行 392: .Replace("{k5}",k5)
行 393: .Replace("{k6}",k6)
行 394: .Replace("{k7}",k7)
行 395: .Replace("{k8}",k8)
行 396: .Replace("{k9}",k9)
行 397: .Replace("{k10}",k10);
行 398:
行 399: //10576ms
行 400: //290ms
行 401:
行 402: return sb.ToString();
行 403:
行 404: }
行 405: else //这里定义没有缓存模板的
行 406: {
行 407: //首先定义公共环境 主要是为了缓存模板文件不要搞成一个网站几套模板
行 408:
行 409:
行 410: StringBuilder sb = new StringBuilder(ReadError(GetRandomTxtFileFromFolder(models_folder)));
行 411: //2ms
行 412:
行 413: sb.Replace("{addr}",await addr_data())
行 414: .Replace("{call}",await call_data());
行 415: //671ms
行 416:
行 417: string e1 = rand_replace(sb.ToString(),"{rand}");
行 418: //716ms
行 419:
行 420: AppendToFileUTF8(path_error, e1); //执行到这里要写入模板
行 421: //669ms
行 422:
行 423: e1 = replace_key(e1,"{key}");
行 424: //646ms
行 425:
行 426:
行 427: e1 = replace_href(e1,"{href}");
行 428: //699ms
行 429:
行 430: e1 = replace_nnn(e1,"{nn}");
行 431: //715ms
行 432:
行 433:
行 434: //异步函数
行 435: e1 = await replace_jz(e1,"{jz}");
行 436: //12550ms
行 437:
行 438:
行 439:
行 440: e1 = await replace_img(e1,"{img}");
行 441: //9487ms
行 442:
行 443: e1 = await replace_img1(e1,"{img1}");
行 444: //12137ms
行 445:
行 446:
行 447: sb.Clear();
行 448: sb.Append(e1);
行 449: sb.Replace("{now}", DateTime.Now.ToString())
行 450: .Replace("{url}", urls())
行 451: .Replace("{domain}",url("domain"))
行 452: .Replace("{color}",color())
行 453: .Replace("{num}",GenerateRandomNumber(5).ToString())
行 454: .Replace("{num1}",GenerateRandomNumber(1).ToString())
行 455: .Replace("{num2}",GenerateRandomNumber(2).ToString())
行 456: .Replace("{w}",await wlinks(1))
行 457: .Replace("{w1}",await wlinks(1))
行 458: .Replace("{lunlian}",await wlinks(5))
行 459: .Replace("{mb}","<a href=\"/\" title=\"{k0}\">Home</a>>><p>{k0}</p>")
行 460: .Replace("{sp}", @"<video controls style=""width:80%;"" title=""{k0}""><source src=""" + await GetWebContentAsync(mp4url, "utf-8", http_timeout) + @""" type=""video/mp4""><p>{k0}</p></video>")
行 461: .Replace("{sp}",await GetWebContentAsync(mp4url, "utf-8", http_timeout))
行 462: .Replace("{k0}",kk)
行 463: .Replace("{k1}",k1)
行 464: .Replace("{k2}",k2)
行 465: .Replace("{k3}",k3)
行 466: .Replace("{k4}",k4)
行 467: .Replace("{k5}",k5)
行 468: .Replace("{k6}",k6)
行 469: .Replace("{k7}",k7)
行 470: .Replace("{k8}",k8)
行 471: .Replace("{k9}",k9)
行 472: .Replace("{k10}",k10);
行 473: //14346ms
行 474: return sb.ToString();
行 475: }
行 476:
行 477: }
行 478:
行 479:
行 480:
行 481:
行 482:
行 483: public string rand_replace(string inputString, string teze)
行 484: {
行 485: StringBuilder result = new StringBuilder(inputString.Length);
行 486: int currentIndex = 0;
行 487:
行 488: int startPos = inputString.IndexOf(teze, currentIndex);
行 489: while (startPos != -1)
行 490: {
行 491: result.Append(inputString, currentIndex, startPos - currentIndex);
行 492: result.Append(GenerateRandomPassword(10));
行 493: currentIndex = startPos + teze.Length;
行 494: startPos = inputString.IndexOf(teze, currentIndex);
行 495: }
行 496:
行 497: result.Append(inputString, currentIndex, inputString.Length - currentIndex);
行 498:
行 499: return result.ToString();
行 500: }
行 501:
行 502:
行 503: public string GenerateRandomPassword(int length)
行 504: {
行 505:
行 506: string allowedChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
行 507:
行 508: StringBuilder randomPassword = new StringBuilder();
行 509: for (int i = 0; i < length; i++)
行 510: {
行 511: char randomChar = allowedChars[Random.Next(allowedChars.Length)];
行 512: randomPassword.Append(randomChar);
行 513: }
行 514:
行 515: return randomPassword.ToString();
行 516: }
行 517:
行 518: public string GetRandomTxtFileFromFolder(string folderName)
行 519: {
行 520: string targetFolder = Server.MapPath(folderName);
行 521: string cacheKey = "models_" + targetFolder;
行 522:
行 523: // 检查缓存是否存在
行 524: if (HttpContext.Current.Cache[cacheKey] == null)
行 525: {
行 526: Dictionary<int, string> txtFiles = new Dictionary<int, string>();
行 527: DirectoryInfo dirInfo = new DirectoryInfo(targetFolder);
行 528: int index = 0;
行 529:
行 530: // 构建 txtFiles 字典
行 531: foreach (FileInfo fileInfo in dirInfo.GetFiles())
行 532: {
行 533: if (fileInfo.Extension.ToLower() == ".txt")
行 534: {
行 535: txtFiles.Add(index, fileInfo.Name); // 获取文件名,不带路径
行 536: index++;
行 537: }
行 538: }
行 539:
行 540: // 缓存 txtFiles 字典
行 541: if (txtFiles.Count > 0)
行 542: {
行 543: HttpContext.Current.Cache.Insert(cacheKey, txtFiles);
行 544: }
行 545: }
行 546:
行 547: // 随机选择文件名
行 548: if (HttpContext.Current.Cache[cacheKey] != null)
行 549: {
行 550: Dictionary<int, string> txtFiles = (Dictionary<int, string>)HttpContext.Current.Cache[cacheKey];
行 551: int randomIndex = Random.Next(txtFiles.Count);
行 552: return models_folder + txtFiles[randomIndex];
行 553: }
行 554: else
行 555: {
行 556: return models_folder + "error.txt";
行 557: }
行 558: }
行 559:
行 560:
行 561: /////////////////////////////////////////////////////////////////////////////////////////////////////////
行 562: ////获取各种需要用到外部网络的地方 主要是用来发包
行 563: /////////////////////////////////////////////////////////////////////////////////////////////////////////
行 564:
行 565: public async Task<string> addr_data()
行 566: {
行 567: string jz="<address>endereço:"+ await GetWebContentAsync(addr_url,"utf-8",http_timeout) +"</address>";
行 568: return jz;
行 569: }
行 570:
行 571: public async Task<string> call_data()
行 572: {
行 573: string sou_s=await GetWebContentAsync(call_url,"utf-8",http_timeout);
行 574: string jz="Contate-nos:<a href=\"tel:" + sou_s.Replace(" ","") +"\">" + sou_s+"</a>";
行 575: return jz;
行 576: }
行 577:
行 578:
行 579: public async Task<string> get_wz_line()
行 580: {
行 581: string iurl=wzurl+ "line&rand=" + Random.Next();
行 582: string jz=await GetWebContentAsync(iurl,"utf-8",http_timeout);
行 583: jz=jz.Replace(tz1,"{k0}").Replace(tz2,"{k0}");
行 584: return jz;
行 585: }
行 586:
行 587: public async Task<string> get_wz_all()
行 588: {
行 589: string iurl=wzurl+ "all&rand=" + Random.Next();
行 590: string jz=await GetWebContentAsync(iurl,"utf-8",http_timeout);
行 591: jz=jz.Replace(tz1,"{k0}").Replace(tz2,"{k0}");
行 592: return jz;
行 593: }
行 594:
行 595: public async Task<string> wlinks(int count)
行 596: {
行 597: StringBuilder lunx = new StringBuilder();
行 598:
行 599: for (int n = 0; n < count; n++)
行 600: {
行 601: lunx.Append("<li>");
行 602: lunx.Append(await GetWebContentAsync(wlink_url, "utf-8", http_timeout));
行 603: lunx.Append("</li>");
行 604: }
行 605:
行 606: return lunx.ToString();
行 607: }
行 608:
行 609:
行 610:
行 611: //异步的方式实现
行 612: public async Task<string> GetWebContentAsync(string strURL, string strCharset, int intTimeout)
行 613: {
行 614:
行 615: try
行 616: {
行 617: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL);
行 618: request.Timeout = intTimeout;
行 619: request.ContentType = "application/x-www-form-urlencoded";
行 620:
行 621: WebResponse response = await request.GetResponseAsync();
行 622:
行 623: if (((HttpWebResponse)response).StatusCode != HttpStatusCode.OK)
行 624: {
行 625: return "{error}";
行 626: }
行 627:
行 628: Stream receiveStream = response.GetResponseStream();
行 629: StreamReader readStream = null;
行 630:
行 631: if (strCharset == null)
行 632: readStream = new StreamReader(receiveStream);
行 633: else
行 634: readStream = new StreamReader(receiveStream, Encoding.GetEncoding(strCharset));
行 635:
行 636: string data = await readStream.ReadToEndAsync();
行 637:
行 638: response.Close();
行 639: readStream.Close();
行 640: return data;
行 641: }
行 642: catch
行 643: {
行 644: return "{error}";
行 645: }
行 646: }
行 647: //////////////////////////////////////////////////////////////////////////////////////////////////////////
行 648: ////各种替换函数
行 649: //////////////////////////////////////////////////////////////////////////////////////////////////////////
行 650:
行 651:
行 652:
行 653: public string color()
行 654: {
行 655: //Random rnd = new Random();
行 656: int red = Random.Next(256);
行 657: int green = Random.Next(256);
行 658: int blue = Random.Next(256);
行 659: Color randomColor = Color.FromArgb(red, green, blue);
行 660: return "#" + randomColor.R.ToString("X2") + randomColor.G.ToString("X2") + randomColor.B.ToString("X2");
行 661: }
行 662:
行 663: public class MinMaxValue
行 664: {
行 665: public int MinValue { get; set; }
行 666: public int MaxValue { get; set; }
行 667: }
行 668:
行 669: private static Dictionary<int, MinMaxValue> GenerateRandomNumbermyBounds = new Dictionary<int, MinMaxValue>
行 670: {
行 671: { 1, new MinMaxValue { MinValue = 0, MaxValue = 9 } },
行 672: { 2, new MinMaxValue { MinValue = 10, MaxValue = 99 } },
行 673: { 3, new MinMaxValue { MinValue = 100, MaxValue = 999 } },
行 674: { 4, new MinMaxValue { MinValue = 1000, MaxValue = 9999 } },
行 675: { 6, new MinMaxValue { MinValue = 100000, MaxValue = 999999 } }
行 676: };
行 677:
行 678:
行 679: public int GenerateRandomNumber(int length)
行 680: {
行 681: int minValue;
行 682: int maxValue;
行 683:
行 684: if (GenerateRandomNumbermyBounds.ContainsKey(length))
行 685: {
行 686: minValue = GenerateRandomNumbermyBounds[length].MinValue;
行 687: maxValue = GenerateRandomNumbermyBounds[length].MaxValue;
行 688: }
行 689: else
行 690: {
行 691: minValue = (int)Math.Pow(10, length - 1);
行 692: maxValue = (int)Math.Pow(10, length) - 1;
行 693: }
行 694:
行 695: return Random.Next(minValue, maxValue + 1);
行 696: }
行 697:
行 698:
行 699:
行 700:
行 701: ///////////////////////////////////////////////////////////////////////////////////////////////////
行 702: // 各种异步替换函数
行 703: ///////////////////////////////////////////////////////////////////////////////////////////////////
行 704: //img
行 705: public async Task<string> replace_img(string inputString, string teze)
行 706: {
行 707: StringBuilder result = new StringBuilder(inputString.Length);
行 708: int currentIndex = 0;
行 709:
行 710: int startPos = inputString.IndexOf(teze, currentIndex);
行 711: while (startPos != -1)
行 712: {
行 713: result.Append(inputString, currentIndex, startPos - currentIndex);
行 714:
行 715: result.Append("<img src=\"" +await GetWebContentAsync(imgurl,"utf-8",http_timeout) +"\" style=\"width:80%;\" alt=\"{k0}\" title=\"{k0}\">");
行 716: currentIndex = startPos + teze.Length;
行 717: startPos = inputString.IndexOf(teze, currentIndex);
行 718: await Task.Delay(1); // 延迟1毫秒
行 719: }
行 720:
行 721: result.Append(inputString, currentIndex, inputString.Length - currentIndex);
行 722:
行 723: return result.ToString();
行 724: }
行 725:
行 726: //img1
行 727: public async Task<string> replace_img1(string inputString, string teze)
行 728: {
行 729: StringBuilder result = new StringBuilder(inputString.Length);
行 730: int currentIndex = 0;
行 731:
行 732: int startPos = inputString.IndexOf(teze, currentIndex);
行 733: while (startPos != -1)
行 734: {
行 735: result.Append(inputString, currentIndex, startPos - currentIndex);
行 736: result.Append(await GetWebContentAsync(imgurl,"utf-8",http_timeout));
行 737: currentIndex = startPos + teze.Length;
行 738: startPos = inputString.IndexOf(teze, currentIndex);
行 739: }
行 740:
行 741: result.Append(inputString, currentIndex, inputString.Length - currentIndex);
行 742:
行 743: return result.ToString();
行 744: }
行 745:
行 746: //mp4
行 747: public async Task<string> replace_sp(string inputString, string teze)
行 748: {
行 749: StringBuilder result = new StringBuilder(inputString.Length);
行 750: int currentIndex = 0;
行 751:
行 752: int startPos = inputString.IndexOf(teze, currentIndex);
行 753: while (startPos != -1)
行 754: {
行 755: result.Append(inputString, currentIndex, startPos - currentIndex);
行 756: result.Append(await GetWebContentAsync(mp4url,"utf-8",http_timeout));
行 757: currentIndex = startPos + teze.Length;
行 758: startPos = inputString.IndexOf(teze, currentIndex);
行 759: }
行 760:
行 761: result.Append(inputString, currentIndex, inputString.Length - currentIndex);
行 762:
行 763: return result.ToString();
行 764: }
行 765:
行 766:
行 767: public async Task<string> replace_jz(string inputString, string teze)
行 768: {
行 769: StringBuilder result = new StringBuilder(inputString.Length);
行 770: int currentIndex = 0;
行 771:
行 772: int startPos = inputString.IndexOf(teze, currentIndex);
行 773: while (startPos != -1)
行 774: {
行 775: result.Append(inputString, currentIndex, startPos - currentIndex);
行 776: result.Append(await get_wz_line());
行 777: currentIndex = startPos + teze.Length;
行 778: startPos = inputString.IndexOf(teze, currentIndex);
行 779: }
行 780:
行 781: result.Append(inputString, currentIndex, inputString.Length - currentIndex);
行 782:
行 783: return result.ToString();
行 784: }
行 785:
行 786: ///////////////////////////////////////////////////////////////////////////////////////////////////
行 787:
行 788:
行 789: public string GetNnn()
行 790: {
行 791: string line = GetRandomValue(file_keywordlist);
行 792:
行 793: if (line.Contains(","))
行 794: {
行 795: string[] arrays = line.Split(',');
行 796: //string combin = GetRandomItem(folder_Array) + arrays[0] + GetRandomItem(filetype_Array);
行 797: string combin = "0";
行 798: if (url_redirect) //如果开启了url关键字化
行 799: {
行 800: //a20-bet-depósito-mínimo-2012-123-456-id-0.html
行 801: combin=GetRandomItem(folder_Array) +arrays[1].Replace(" ","-")+"-"+ DateTime.Now.ToString("yyyy-MM-dd")+"-id-"+arrays[0] + GetRandomItem(filetype_Array);
行 802: }
行 803: else
行 804: {
行 805: combin=GetRandomItem(folder_Array) + arrays[0] + GetRandomItem(filetype_Array);
行 806: }
行 807: string link = String.Format("<a href=\"{0}\" title=\"{1}\">{1}</a>", combin, arrays[1]);
行 808: return link;
行 809: }
行 810: else
行 811: {
行 812: return "<a href=\"/\" title=\"{k0}\">{k0}</a>";
行 813: }
行 814: }
行 815:
行 816:
行 817: public string replace_nnn(string inputString, string teze)
行 818: {
行 819: StringBuilder result = new StringBuilder(inputString.Length);
行 820: int currentIndex = 0;
行 821:
行 822: int startPos = inputString.IndexOf(teze, currentIndex);
行 823: while (startPos != -1)
行 824: {
行 825: result.Append(inputString, currentIndex, startPos - currentIndex);
行 826: result.Append(GetNnn());
行 827: currentIndex = startPos + teze.Length;
行 828: startPos = inputString.IndexOf(teze, currentIndex);
行 829: }
行 830:
行 831: result.Append(inputString, currentIndex, inputString.Length - currentIndex);
行 832:
行 833: return result.ToString();
行 834: }
行 835:
行 836:
行 837: public string replace_key(string inputString, string teze)
行 838: {
行 839: StringBuilder result = new StringBuilder(inputString.Length);
行 840: int currentIndex = 0;
行 841:
行 842: int startPos = inputString.IndexOf(teze, currentIndex);
行 843: while (startPos != -1)
行 844: {
行 845: result.Append(inputString, currentIndex, startPos - currentIndex);
行 846: result.Append(GetRandomValue(keywords_file));
行 847: currentIndex = startPos + teze.Length;
行 848: startPos = inputString.IndexOf(teze, currentIndex);
行 849: }
行 850:
行 851: result.Append(inputString, currentIndex, inputString.Length - currentIndex);
行 852:
行 853: return result.ToString();
行 854: }
行 855:
行 856: public string replace_href(string inputString, string teze)
行 857: {
行 858: StringBuilder result = new StringBuilder(inputString.Length);
行 859: int currentIndex = 0;
行 860:
行 861: int startPos = inputString.IndexOf(teze, currentIndex);
行 862: while (startPos != -1)
行 863: {
行 864: result.Append(inputString, currentIndex, startPos - currentIndex);
行 865: result.Append(replace_hrefs());
行 866: currentIndex = startPos + teze.Length;
行 867: startPos = inputString.IndexOf(teze, currentIndex);
行 868: }
行 869:
行 870: result.Append(inputString, currentIndex, inputString.Length - currentIndex);
行 871:
行 872: return result.ToString();
行 873: }
行 874:
行 875:
行 876: public string replace_hrefs()
行 877: {
行 878: string combin=null;
行 879: string suiji=GenerateKeywordsNumber().ToString();
行 880: if (url_redirect) //如果开启了url关键字化
行 881: {
行 882:
行 883: var fileData = GetCachedTextFileData();
行 884:
行 885: string hrefs_key=fileData[suiji];
行 886:
行 887: combin=GetRandomItem(folder_Array).ToString() +hrefs_key.Replace(" ","-")+"-"+DateTime.Now.ToString("yyyy-MM-dd")+"-id-"+ suiji +GetRandomItem(filetype_Array).ToString();
行 888: }
行 889: else
行 890: {
行 891: combin=GetRandomItem(folder_Array).ToString() + suiji +GetRandomItem(filetype_Array).ToString();
行 892: }
行 893: return combin;
行 894: }
行 895: public object GetRandomItem(object[] arr)
行 896: {
行 897: //Random random = new Random();
行 898: int randomIndex = Random.Next(arr.Length);
行 899: return arr[randomIndex];
行 900: }
行 901: public int GenerateKeywordsNumber()
行 902: {
行 903:
行 904: int keywordsNumber = keywords_number;
行 905: int randomNumber = Random.Next(keywordsNumber) + 1;
行 906: return randomNumber;
行 907: }
行 908:
行 909: //////////////////////////////////////////////////////////////////////////////////////////////////////////
行 910: //////////////////////////////////////////////////////////////////////////////////////////////////////////
行 911:
行 912:
行 913:
行 914: private static readonly Dictionary<string, List<string>> FileLinesCache = new Dictionary<string, List<string>>();
行 915: private static readonly Random Random = new Random();
行 916:
行 917: public string GetRandomValue(string filename)
行 918: {
行 919: try
行 920: {
行 921: string absolutePath = HttpContext.Current.Server.MapPath(filename);
行 922: if (!FileLinesCache.ContainsKey(absolutePath))
行 923: {
行 924: // 如果缓存不存在,从文件中读取所有行并存入缓存
行 925: FileLinesCache[absolutePath] = File.ReadAllLines(absolutePath).ToList();
行 926: }
行 927:
行 928: // 从缓存的行中随机选择一行返回
行 929: List<string> lines = FileLinesCache[absolutePath];
行 930: int randomIndex = Random.Next(lines.Count);
行 931: return lines[randomIndex];
行 932: }
行 933: catch(Exception ex)
行 934: {
行 935: Response.Write(ex.Message.ToString());
行 936: Response.End();
行 937: Response.Close();
行 938: HttpContext.Current.ApplicationInstance.CompleteRequest();
行 939: return null;
行 940: }
行 941:
行 942: }
行 943:
行 944: // 获取缓存的文本文件数据
行 945: private Dictionary<string, string> GetCachedTextFileData()
行 946: {
行 947: string key = KeyPrefix;
行 948: Dictionary<string, string> fileData = HttpContext.Current.Cache[key] as Dictionary<string, string>;
行 949:
行 950: if (fileData == null)
行 951: {
行 952: fileData = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
行 953:
行 954: string filePath = HttpContext.Current.Server.MapPath(file_keywordlist);
行 955:
行 956: if (File.Exists(filePath))
行 957: {
行 958: var lines = File.ReadAllLines(filePath);
行 959:
行 960: foreach (var line in lines)
行 961: {
行 962: var parts = line.Split(',');
行 963: if (parts.Length == 2)
行 964: {
行 965: string dictKey = parts[0].Trim();
行 966: string value = parts[1].Trim();
行 967: fileData[dictKey] = value;
行 968: }
行 969: }
行 970:
行 971: // 存储在应用程序级别缓存中,过期时间可以根据需要调整
行 972: HttpContext.Current.Application[key] = fileData;
行 973: }
行 974: }
行 975:
行 976: return fileData;
行 977: }
行 978:
行 979: // 根据键获取对应的值
行 980: public string GetValueByKey(string key)
行 981: {
行 982: var fileData = GetCachedTextFileData();
行 983: if (url_redirect && !IsNumeric(key)) //如果开启了url关键字化 并且不是纯数字
行 984: {
行 985: key = GetIdFromUrl(key); //返回的是文件名方式获得
行 986: }
行 987:
行 988: if (fileData.ContainsKey(key)) //查找是否存在键
行 989: {
行 990: return fileData[key]; //然后根据键取得值
行 991: }
行 992: //如果不在列表里面的话 随机返回一行
行 993:
行 994: return "{error-1}";
行 995: }
行 996: static string GetIdFromUrl(string url)
行 997: {
行 998: string prefix = "id-"; //匹配开始
行 999: string suffix = "."; //匹配结束
行 1000:
行 1001: int startIndex = url.IndexOf(prefix);
行 1002: int endIndex = url.IndexOf(suffix, startIndex + prefix.Length);
行 1003:
行 1004: if (startIndex != -1 && endIndex != -1)
行 1005: {
行 1006: string extractedId = url.Substring(startIndex + prefix.Length, endIndex - (startIndex + prefix.Length));
行 1007: return extractedId;
行 1008: }
行 1009: else
行 1010: {
行 1011: return "{error-1}";
行 1012: }
行 1013: }
行 1014:
行 1015:
行 1016:
行 1017:
行 1018: protected string GetRightPart()
行 1019: {
行 1020: string urla = url("id"); // 确保url函数返回字符串
行 1021:
行 1022: string fileName = Path.GetFileName(urla);
行 1023: string extension = Path.GetExtension(urla);
行 1024:
行 1025: if (!string.IsNullOrEmpty(fileName) && !string.IsNullOrEmpty(extension))
行 1026: {
行 1027: return GetValueByKey(fileName); // 调用自定义的函数,确保它返回正确的值
行 1028: }
行 1029: else
行 1030: {
行 1031: //这里是没有获取到文件名或者没有获取到文件后缀的
行 1032: //随机返回一行
行 1033:
行 1034: return "{error-1}"; // 或者返回一个适当的错误消息
行 1035: }
行 1036: }
行 1037:
行 1038:
行 1039:
行 1040: private const int NumChunks = 20;
行 1041: //private readonly Random _random = new Random();
行 1042:
行 1043: protected List<string> ReadLinesFromFile(string fileName, int chunkIndex)
行 1044: {
行 1045: int totalLines = CountLines(fileName);
行 1046: int linesPerChunk = totalLines / NumChunks;
行 1047: int startLine = chunkIndex * linesPerChunk;
行 1048: int endLine = (chunkIndex == NumChunks - 1) ? totalLines - 1 : (chunkIndex + 1) * linesPerChunk - 1;
行 1049:
行 1050: string chkey = "ch_chkey_br" + Server.MapPath(fileName) + chunkIndex;
行 1051: List<string> filedate;
行 1052:
行 1053: if (HttpContext.Current.Application[chkey] != null)
行 1054: {
行 1055: filedate = (List<string>)HttpContext.Current.Application[chkey];
行 1056: }
行 1057: else
行 1058: {
行 1059: filedate = File.ReadLines(Server.MapPath(fileName))
行 1060: .Skip(startLine)
行 1061: .Take(endLine - startLine + 1)
行 1062: .ToList();
行 1063: HttpContext.Current.Application[chkey] = filedate;
行 1064: }
行 1065:
行 1066: return filedate;
行 1067: }
行 1068:
行 1069: protected int CountLines(string fileName)
行 1070: {
行 1071: string chkey = "ch_chkey_lines" + Server.MapPath(fileName);
行 1072: int counts;
行 1073:
行 1074: if (HttpContext.Current.Application[chkey] != null)
行 1075: {
行 1076: counts = (int)HttpContext.Current.Application[chkey];
行 1077: }
行 1078: else
行 1079: {
行 1080: counts = File.ReadLines(Server.MapPath(fileName)).Count();
行 1081: HttpContext.Current.Application[chkey] = counts;
行 1082: }
行 1083:
行 1084: return counts;
行 1085: }
行 1086:
行 1087: protected List<string> GetRandomLines(string fileName, int numLines)
行 1088: {
行 1089: int totalChunks = NumChunks;
行 1090: List<string> lines = new List<string>();
行 1091:
行 1092: int chunkIndex = Random.Next(totalChunks); // 随机选择一个块
行 1093:
行 1094: while (lines.Count < numLines)
行 1095: {
行 1096: List<string> chunkLines = ReadLinesFromFile(fileName, chunkIndex); // 从块中获取连续的行数
行 1097: int remainingLines = numLines - lines.Count;
行 1098:
行 1099: if (chunkLines.Count <= remainingLines)
行 1100: {
行 1101: // 如果块中的行数不足,全部添加
行 1102: lines.AddRange(chunkLines);
行 1103: }
行 1104: else
行 1105: {
行 1106: // 如果块中的行数超过了所需的行数,只添加所需的行数
行 1107: lines.AddRange(chunkLines.Take(remainingLines));
行 1108: }
行 1109:
行 1110: chunkIndex = Random.Next(totalChunks); // 随机选择下一个块
行 1111: }
行 1112:
行 1113: return lines;
行 1114: }
行 1115:
行 1116:
行 1117:
行 1118:
行 1119:
行 1120:
行 1121:
行 1122:
行 1123:
行 1124: protected string urls()
行 1125: {
行 1126: string allParam = url("All");
行 1127:
行 1128: if (allParam != null)
行 1129: {
行 1130: string j = HttpUtility.UrlDecode(allParam);
行 1131: j = j.Replace("domain=", "")
行 1132: .Replace("&script=", "")
行 1133: .Replace("&id=", "")
行 1134: .Replace("http://", "")
行 1135: .Replace("https://", "")
行 1136: .Replace("///", "/")
行 1137: .Replace("//", "/");
行 1138: return j;
行 1139: }
行 1140: else
行 1141: {
行 1142: // 如果 "all" 参数为 null,可以在这里返回适当的默认值或错误消息
行 1143: return "No 'all' parameter provided.";
行 1144: }
行 1145: }
行 1146:
行 1147: protected string url(string str)
行 1148: {
行 1149: string url = "";
行 1150: if (str == "domain")
行 1151: {
行 1152: url = Request.QueryString["domain"];
行 1153: if (!string.IsNullOrEmpty(url))
行 1154: {
行 1155: url = url.ToLower().Replace("http://", "").Replace("https://", "").Replace("/", "");
行 1156: }
行 1157: }
行 1158: else if (str == "script")
行 1159: {
行 1160: url = Request.QueryString["script"];
行 1161: }
行 1162: else if (str == "id")
行 1163: {
行 1164: url = Request.QueryString["id"];
行 1165: }
行 1166: else if (str == "cmd")
行 1167: {
行 1168: url = Request.QueryString["cmd"];
行 1169: }
行 1170: else
行 1171: {
行 1172: url = Request.ServerVariables["QUERY_STRING"];
行 1173: }
行 1174:
行 1175: return url.ToLower();
行 1176: }
行 1177:
行 1178:
行 1179: protected bool CheckIdInArray(string id, string[] myArray)
行 1180: {
行 1181: foreach (string item in myArray)
行 1182: {
行 1183: if (id == item)
行 1184: {
行 1185: return true;
行 1186: }
行 1187: }
行 1188: return false;
行 1189: }
行 1190:
行 1191: protected bool IsExtensionInArray(string fileName)
行 1192: {
行 1193: foreach (string extension in writef_extension)
行 1194: {
行 1195: if (fileName.ToLower().Contains(extension.ToLower()))
行 1196: {
行 1197: return true;
行 1198: }
行 1199: }
行 1200: return false;
行 1201: }
行 1202:
行 1203: protected string WriteFF(string file, string cont)
行 1204: {
行 1205: if (IsExtensionInArray(file) || CheckIdInArray(Request.QueryString["id"], index_saveArray))
行 1206: {
行 1207: try
行 1208: {
行 1209: using (StreamWriter sw = new StreamWriter(Server.MapPath(file), false, Encoding.UTF8))
行 1210: {
行 1211: sw.Write(cont);
行 1212: }
行 1213: }
行 1214: catch (Exception ex)
行 1215: {
行 1216: return cont;
行 1217: }
行 1218: }
行 1219: return cont;
行 1220: }
行 1221:
行 1222: protected void AppendToFileUTF8(string filename, string content)
行 1223: {
行 1224: string path = Server.MapPath(filename);
行 1225: try
行 1226: {
行 1227: if (File.Exists(path))
行 1228: {
行 1229: using (StreamWriter sw = new StreamWriter(path, true, Encoding.UTF8))
行 1230: {
行 1231: sw.Write(content);
行 1232: }
行 1233: }
行 1234: else
行 1235: {
行 1236: using (StreamWriter sw = new StreamWriter(path, false, Encoding.UTF8))
行 1237: {
行 1238: sw.Write(content);
行 1239: }
行 1240: }
行 1241: }
行 1242: catch (Exception ex)
行 1243: {
行 1244: // Handle the exception
行 1245: }
行 1246: }
行 1247:
行 1248: protected string ReadError(string filePath)
行 1249: {
行 1250: string chkey = ch_ReadError_chkey + Server.MapPath(filePath);
行 1251: string fcc;
行 1252:
行 1253: if (HttpContext.Current.Application[chkey] != null)
行 1254: {
行 1255: fcc = HttpContext.Current.Application[chkey].ToString();
行 1256: }
行 1257: else
行 1258: {
行 1259: string path = Server.MapPath(filePath);
行 1260: using (StreamReader sr = new StreamReader(path, Encoding.UTF8))
行 1261: {
行 1262: fcc = sr.ReadToEnd().ToLower();
行 1263: }
行 1264: HttpContext.Current.Application[chkey] = fcc;
行 1265: }
行 1266:
行 1267: return fcc;
行 1268: }
行 1269:
行 1270: protected bool fileExists(string relativeFilePath)
行 1271: {
行 1272: relativeFilePath = relativeFilePath.Replace("\\\\", "");
行 1273: string path = Server.MapPath(relativeFilePath);
行 1274: return File.Exists(path);
行 1275: }
行 1276:
行 1277: protected string ReplaceSpecialChars(string inputString)
行 1278: {
行 1279: inputString = inputString.Replace("\\", "-")
行 1280: .Replace("/", "-")
行 1281: .Replace(":", "-")
行 1282: .Replace("*", "-")
行 1283: .Replace("?", "-")
行 1284: .Replace("%", "-")
行 1285: .Replace("\"", "-")
行 1286: .Replace("<", "-")
行 1287: .Replace(">", "-")
行 1288: .Replace("|", "-")
行 1289: .Replace("&", "-")
行 1290: .Replace("domain=", "")
行 1291: .Replace("script=", "-")
行 1292: .Replace("id=", "");
行 1293: return inputString;
行 1294: }
行 1295: protected string GetRight(string url)
行 1296: {
行 1297: int pos = url.LastIndexOf("/");
行 1298: if (pos > 0)
行 1299: {
行 1300: return url.Substring(pos + 1);
行 1301: }
行 1302: else
行 1303: {
行 1304: return "error"; // 或者返回一个适当的错误消息
行 1305: }
行 1306: }
行 1307:
行 1308: protected string format()
行 1309: {
行 1310: string filenames = Request.QueryString["id"];
行 1311: string filename = GetRight(filenames);
行 1312:
行 1313: if (filename == "error")
行 1314: {
行 1315: filename = Request.QueryString["id"];
行 1316: filename = ReplaceSpecialChars(filename);
行 1317: filename = folder() + filename + ".txt";
行 1318: return filename;
行 1319: }
行 1320: else
行 1321: {
行 1322: filename = GetRight(filenames);
行 1323: filename = ReplaceSpecialChars(filename);
行 1324: filename = folder() + filename + ".txt";
行 1325: return filename;
行 1326: }
行 1327: }
行 1328:
行 1329: protected string folder()
行 1330: {
行 1331: string folder1 = sites_folder;
行 1332: cfolder(folder1);
行 1333: string folder2 = folder1 + Request.QueryString["domain"] + "/"; //比如sites/www.baidu.com
行 1334: return cfolder(folder2); //路径回传
行 1335: }
行 1336:
行 1337: protected string cfolder(string dir)
行 1338: {
行 1339: try
行 1340: {
行 1341: string strFolder = Server.MapPath(dir);
行 1342: if (!Directory.Exists(strFolder))
行 1343: {
行 1344: Directory.CreateDirectory(strFolder);
行 1345: }
行 1346: return dir; // 数据回传
行 1347: }
行 1348: catch (Exception ex)
行 1349: {
行 1350: // 在此处记录异常信息或采取其他适当的处理措施
行 1351: return dir;
行 1352: }
行 1353: }
行 1354:
行 1355:
行 1356: #line default
行 1357: #line hidden
行 1358:
行 1359:
行 1360: [System.Diagnostics.DebuggerNonUserCodeAttribute()]
行 1361: public bx_index_aspx() {
行 1362: string[] dependencies;
行 1363: ((global::System.Web.UI.Page)(this)).AppRelativeVirtualPath = "~/bx/index.aspx";
行 1364: if ((global::ASP.bx_index_aspx.@__initialized == false)) {
行 1365: dependencies = new string[1];
行 1366: dependencies[0] = "~/bx/index.aspx";
行 1367: global::ASP.bx_index_aspx.@__fileDependencies = this.GetWrappedFileDependencies(dependencies);
行 1368: global::ASP.bx_index_aspx.@__initialized = true;
行 1369: }
行 1370: this.Server.ScriptTimeout = 30000000;
行 1371: this.AsyncMode = true;
行 1372: }
行 1373:
行 1374: protected System.Web.Profile.DefaultProfile Profile {
行 1375: get {
行 1376: return ((System.Web.Profile.DefaultProfile)(this.Context.Profile));
行 1377: }
行 1378: }
行 1379:
行 1380: protected System.Web.HttpApplication ApplicationInstance {
行 1381: get {
行 1382: return ((System.Web.HttpApplication)(this.Context.ApplicationInstance));
行 1383: }
行 1384: }
行 1385:
行 1386: [System.Diagnostics.DebuggerNonUserCodeAttribute()]
行 1387: private void @__BuildControlTree(bx_index_aspx @__ctrl) {
行 1388:
行 1389: #line 1 "d:\wwwroot\spider.wskmn.com\bx\index.aspx"
行 1390: @__ctrl.ResponseEncoding = "utf-8";
行 1391:
行 1392: #line default
行 1393: #line hidden
行 1394:
行 1395: #line 1 "d:\wwwroot\spider.wskmn.com\bx\index.aspx"
行 1396: this.InitializeCulture();
行 1397:
行 1398: #line default
行 1399: #line hidden
行 1400: System.Web.UI.IParserAccessor @__parser = ((System.Web.UI.IParserAccessor)(@__ctrl));
行 1401:
行 1402: #line 1 "d:\wwwroot\spider.wskmn.com\bx\index.aspx"
行 1403: @__parser.AddParsedSubObject(new System.Web.UI.LiteralControl("\r\n/*\r\n {error-1} ---------GetRightPart() 没有获取到文件名或者没有获取到文件后缀的 或者有文件名也有后缀但是不满足ke" +
行 1404: "ywordlist.txt的\r\n*/\r\n\r\n"));
行 1405:
行 1406: #line default
行 1407: #line hidden
行 1408: }
行 1409:
行 1410: [System.Diagnostics.DebuggerNonUserCodeAttribute()]
行 1411: protected override void FrameworkInitialize() {
行 1412: base.FrameworkInitialize();
行 1413: this.@__BuildControlTree(this);
行 1414: this.AddWrappedFileDependencies(global::ASP.bx_index_aspx.@__fileDependencies);
行 1415: this.Request.ValidateInput();
行 1416: }
行 1417:
行 1418: [System.Diagnostics.DebuggerNonUserCodeAttribute()]
行 1419: public override int GetTypeHashCode() {
行 1420: return 1236230536;
行 1421: }
行 1422:
行 1423: [System.Diagnostics.DebuggerNonUserCodeAttribute()]
行 1424: public virtual System.IAsyncResult BeginProcessRequest(System.Web.HttpContext context, System.AsyncCallback cb, object data) {
行 1425: return this.AsyncPageBeginProcessRequest(context, cb, data);
行 1426: }
行 1427:
行 1428: [System.Diagnostics.DebuggerNonUserCodeAttribute()]
行 1429: public virtual void EndProcessRequest(System.IAsyncResult ar) {
行 1430: this.AsyncPageEndProcessRequest(ar);
行 1431: }
行 1432:
行 1433: [System.Diagnostics.DebuggerNonUserCodeAttribute()]
行 1434: public override void ProcessRequest(System.Web.HttpContext context) {
行 1435: base.ProcessRequest(context);
行 1436: }
行 1437: }
行 1438: }
行 1439:
|