private void tmKey_Tick(object sender, EventArgs e) { try { tmKey.Enabled = false; Status = "KeySearch"; model = watchCommon.InitWatch(out scantime); if (model == null) End(); else { //tmKey.Interval = scantime * 60 * interval; var url = "http://www.taobao.com/"; //验证代理IP var ipresult = Util.YanzhengIp(model.Ip, int.Parse(model.IpPort)); if (ipresult) { Util.SetProxy(model.Ip + ":" + model.IpPort); WriteLog(model.Ip + ":" + model.IpPort, ""); myWebBrowser.Navigate(url); WriteLog("1. 跳转到" + url, ""); } else { WriteLog(model.Ip + ":" + model.IpPort, "代理IP不可用"); Start(); } } } catch (Exception ex) { WriteLog(ex.Message, ex.StackTrace); End(); } }
/// <summary> /// 采集函数 /// </summary> /// <param name="url">列表网址</param> /// <param name="nowpage">第几页</param> private void CaiJiIp(string url, int nowpage, int dailitype) { #region start 采集IP列表页内容 WebResponse result = null; string resultstring = ""; try { WebRequest req = WebRequest.Create(url); req.Timeout = 8000; result = req.GetResponse(); this.lb_result.Text = "第" + nowpage.ToString() + "页IP列表网页代码正在GetResponseStream解析......."; Stream ReceiveStream = result.GetResponseStream(); this.lb_result.Text = "第" + nowpage.ToString() + "页IP列表网页代码解析完成......."; string strEncod = result.ContentType; StreamReader sr = new StreamReader(ReceiveStream, System.Text.Encoding.UTF8); this.lb_result.Text = "第" + nowpage.ToString() + "页IP列表网页代码解析后正在读取......."; resultstring = sr.ReadToEnd(); this.lb_result.Text = "第" + nowpage.ToString() + "页IP列表网页代码解析后读取完毕......."; } catch { this.lb_result.Text = "获取IP列表请求超时,请重新尝试采集!"; } finally { if (result != null) { result.Close(); } } #endregion end采集IP列表页内容 List<string> listurl = SniffwebCode(resultstring, "<br />", "@HTTP#"); foreach (string xx in listurl) { var strxx = xx.Replace("\r\n", ""); string[] arr = xx.Split(':'); IpModel ipmodel = new IpModel(); ipmodel.Ip = arr[0].Replace("\r", "").Replace("\n", "").Trim(); ipmodel.IpPort = arr[1]; var ipresult = Util.YanzhengIp(ipmodel.Ip, int.Parse(ipmodel.IpPort)); if (ipresult/* != null && ipresult != "Error"*/) { ComboBoxItem item = cbx_caijitype.SelectedItem as ComboBoxItem; ipmodel.IpType = int.Parse(item.Value.ToString()); ipmodel.IsUse = 1; ipmodel.DaiLiType = dailitype; ipmodel.LastUseTime = DateTime.Now; this.lb_result.Text = "第" + xxcount.ToString() + "个IP正在入库......."; if (iplist.SingleOrDefault(a => a.Ip == ipmodel.Ip) == null) { iplist.Add(ipmodel); xxcount++; this.lb_result.Text = "第" + xxcount.ToString() + "个IP入库成功......."; this.lb_tongji.Text = "已经成功采集" + xxcount.ToString() + "条"; } else { this.lb_tongji.Text = "已存在,已经成功采集" + xxcount.ToString() + "条"; } } else { this.lb_tongji.Text = "IP不可用,已经成功采集" + xxcount.ToString() + "条"; } } this.lb_result.Text = "第" + nowpage.ToString() + "页:开始遍历采集会员信息......."; }
private void GetLocalIP() { string fillname = Environment.CurrentDirectory + "\\IP.txt"; using (StreamReader srReadFile = new StreamReader(fillname)) { iplist.Clear(); while (!srReadFile.EndOfStream) { IpModel model = new IpModel(); string strReadLine = srReadFile.ReadLine(); string[] strs = strReadLine.Split(' '); model.Ip = strs[0]; model.IpPort = strs[1]; model.IpType = strs[2].ToInt(0); model.IsUse = strs[3].ToInt(0); model.DaiLiType = strs[4].ToInt(0); iplist.Add(model); } } }
/// <summary> /// 初始化浏览,主要是初始化 当前的代理IP 和 浏览时间 /// </summary> public IpModel InitWatch(out int scanTime) { Random random = new Random(); scanTime = random.Next(ScanTimeStart, ScanTimeEnd); if (ipindex >= IPList.Count) return null; ipModel = IPList[ipindex]; ipindex++; return ipModel; }