Пример #1
0
        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();
            }
        }
Пример #2
0
        /// <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() + "页:开始遍历采集会员信息.......";
        }
Пример #3
0
        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);
                }
            }
        }
Пример #4
0
        /// <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;
        }