日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于 【通过代理访问】 的研究,【突破 IP ,“无限制”投票】

發(fā)布時(shí)間:2024/6/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于 【通过代理访问】 的研究,【突破 IP ,“无限制”投票】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.



相信大家身邊有很多朋友有時(shí)候請大家投各種票,剛好,這會兒也有朋友找我投票,身為IT程序開發(fā)人員,總覺得投機(jī)取巧一點(diǎn)。

如果僅僅只是點(diǎn)擊即可投票,那相對而言就簡單了,然而,有些網(wǎng)站限制IP,那么情況就不一樣了。

如果您是撥號上網(wǎng)用戶,可以重連路由,改變外網(wǎng)IP地址,不過,這種方式有時(shí)候也不奏效。

于是我采用了IP代理的方式來自動投票。

這樣,一般人會這樣:更改IE瀏覽器的代理設(shè)置,打開IE瀏覽器輸入投票網(wǎng)址(這里需要各位自己找直接投票的url)投票。

但是問題又出來了,每次投票都得重啟瀏覽器才行,我個人覺得瀏覽器打開的一些設(shè)置已經(jīng)保存在了緩存中

雖然在更改代理的時(shí)候更改了注冊表項(xiàng)值,但瀏覽器并沒有實(shí)時(shí)去讀取這個值

因此,鄙人編寫了一個小程序用于自動投票。下面是該程序的關(guān)鍵代碼:


??????? private void StartVote()
??????? {
??????????? this.lbl_daili.Text = lst.Items.Count.ToString(); //獲取代理
??????????? this.wbCnblog.Focus(); //瀏覽器窗口獲取焦點(diǎn)。由于有些投票連接直接彈出alert提示,因此獲取焦點(diǎn),以自動回車防止程序暫停
??????????? int itemcount = lst.Items.Count;//獲取代理列表,已循環(huán)代理訪問
??????????? string[] urls = new string[itemcount]; //用于保存所有將要訪問的投票鏈接地址
??????????? string[] proxyurl_ip = new string[itemcount];// 代理 IP
??????????? string[] proxyurl_port = new string[itemcount];// 代理 Port
??????????? Random rad = new Random();
??????????? int y = rad.Next(0, 72); // 由于有些網(wǎng)站投票需要限制用戶名,因此隨即生成用戶名(數(shù)組)
??????????? for (int i = 0; i < itemcount; i++)
??????????? {
??????????????? int x = y + i;
??????????????? if (x >= 72)
??????????????? {
??????????????????? x = x % 72;
??????????????? }
??????????????? urls[i] = "http://www.xxoo.com?name=" + mingzi[x];
??????????????? lst.Items[i].Selected = true; //選擇當(dāng)前item,提取IP 以及 端口號,保存在數(shù)組中
??????????????? proxyurl_ip[i] = lst.SelectedItems[0].SubItems[0].Text;
??????????????? proxyurl_port[i] = lst.SelectedItems[0].SubItems[1].Text;
??????????? }
??????????? GetHtml(urls, proxyurl_ip, proxyurl_port); //訪問站點(diǎn)獲取站點(diǎn)內(nèi)容
??????????? Application.Exit();//程序結(jié)束
??????? }
????? 訪問站點(diǎn)獲取HTML:
?? ?? #region 自定義方法
??????? bool loading = true;?? //該變量表示網(wǎng)頁是否正在加載.
??????? string html = string.Empty;
??????? WebBrowser browser = new WebBrowser();
??????? int successcount = 0;
??????? int failurecount = 0;
??????? int bugcount = 0;
??????? string temp_proxy = "";
??????? string current_proxy = ""; //當(dāng)前代理,用于些日志用到,相當(dāng)于排他鎖的作用
??????? public void GetHtml(string[] urls, string[] proxyurls_ip, string[] proxyurls_port)
??????? {
??????????? wbCnblog.DocumentText = "頁面加載中...";
??????????? wbCnblog.Navigated += new WebBrowserNavigatedEventHandler(browser_Navigated);//頁面加載時(shí)執(zhí)行 browser_Navigated ,獲取返回內(nèi)容,并寫成功日志
??????????? for (int i = 0; i < urls.Length; i++)
??????????? {
?? ??? ??? ???? loading = true;? //表示正在加載
??????????????? NaviByProxy(? //代理訪問URL
??????????????????????? proxyurls_ip[i], //選中的代理IP地址
??????????????????????? proxyurls_port[i], //選中的代理IP的端口
??????????????????????? urls[i]//url地址
??????????????????????? );
??????????????? while (loading)? //記錄狀態(tài)
??????????????? {
??????????????????? this.txt_info.Text = "正通過代理" + proxyurls_ip[i] + ":" + proxyurls_port[i] + "進(jìn)行投票";
??????????????????? this.textBox_url.Text = urls[i];
??????????????????? current_proxy = proxyurls_ip[i] + ":" + proxyurls_port[i];
??????????????????? try
??????????????????? {
??????????????????????? Application.DoEvents();//等待本次加載完畢才執(zhí)行下次循環(huán).
??????????????????? }
??????????????????? catch
??????????????????? {
??????????????????????? bugcount++;
??????????????????????? this.txt_result.Text = "成功" + successcount + "個" + "/失敗" + failurecount + "個/錯誤" + bugcount + "個";
??????????????????????? continue;
??????????????????? }
??????????????? }
??????????? }
??????????? this.txt_result.Text += "此輪投票已經(jīng)結(jié)束";
??????? }
?? ??? ?#endregion
?? ??? ?
?? ??? ?以下代碼則是 加載內(nèi)容:
?? ??? ?/// <summary>
??????? ///
??????? /// </summary>
??????? /// <param name="sender"></param>
??????? /// <param name="e"></param>
?? ??? ?//? Create by Charles 2012-11-25 13:23
?? ??? ?void browser_Navigated(object sender, WebBrowserNavigatedEventArgs e)
??????? {
??????????? if (current_proxy != temp_proxy) //排他鎖的作用
??????????? {
??????????????? html = wbCnblog.DocumentText;? //獲取到的html.
??????????????? this.wbCnblog.DocumentText = "";
??????????????? if (html.Contains("生活快樂"))
??????????????? {
??????????????????? //this.txt_result.Text += html;
??????????????????? this.txt_status.Text = "成功";
??????????????????? successcount++;
??????????????????? this.txt_result.Text = "成功" + successcount + "個" + "/失敗" + failurecount + "個/錯誤" + bugcount + "個";
??????????????????? this.txt_success.Text += current_proxy + "|";
??????????????????? WriteText(current_proxy + "----投票成功----" + DateTime.Now + Environment.NewLine); //寫日志文件
??????????????? }
??????????????? else
??????????????? {
??????????????????? this.txt_status.Text = "失敗";
??????????????????? failurecount++;
??????????????????? this.txt_result.Text = "成功" + successcount + "個" + "/失敗" + failurecount + "個/錯誤" + bugcount + "個";
??????????????? }
??????????????? loading = false;//在加載完成后,將該變量置為false,下一次循環(huán)隨即開始執(zhí)行.
??????????????? this.wbCnblog.Focus();
?? ??? ??? ??? ?SendKeys.Send("{Enter}"); //如果存在彈窗,回車確定,防止程序暫定
??????????????? //this.Focus();
?? ??? ??? ??? ?//SendKeys.Send("{Enter}");
??????????????? //this.wbCnblog.Document.Focus();
??????????????? //SendKeys.Send("{Enter}");
??????????????? temp_proxy = current_proxy;
??????????? }
??????? }
?? ??? ?關(guān)于寫日志文件,我想應(yīng)該就相對來說簡單多了,就是簡單的寫文本文件
?? ??? ? /// <summary>
??????? /// 寫成功日志文件
??????? /// </summary>
??????? /// <param name="text"></param>
?? ??? ?// Create By Charles 2012-11-25 21:31
??????? public void WriteText(string text)
??????? {
??????????? FileStream fs = new FileStream(Path.Combine(Application.StartupPath, "succes_log.txt"), FileMode.Append);
??????????? StreamWriter sw = new StreamWriter(fs, Encoding.Default);
??????????? sw.Write(text);
??????????? sw.Close();
??????????? fs.Close();
??????? }
?? ??? ?差點(diǎn)忘了,還有一個很重要的代碼,便是刷新 代理 注冊表
?? ??? ?#region 讀取并設(shè)置瀏覽器的proxy server信息
??????? RegistryKey pregkey;
??????? pregkey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Internet Settings", true);
??????? if (pregkey == null)
??????? {
??????????? this.txt_info.Text = "鍵值不存在!";
?? ??? ?}
??????? else
??????? {
??????????? pregkey.SetValue("ProxyServer", lst.SelectedItems[0].SubItems[0].Text + ":" + lst.SelectedItems[0].SubItems[1].Text);
?? ??? ???? this.txt_info.Text = pregkey.GetValue("ProxyServer").ToString();
??????? }
??????? #endregion
?? ??? ?
?? ???? 知識點(diǎn)差不多就這些了,有興趣的朋友可以留言交流交流
??????? 下載地址:http://download.csdn.net/download/shenchaoming/5133965

轉(zhuǎn)載于:https://www.cnblogs.com/shenchaoming/archive/2012/11/25/ProxyVote.html

總結(jié)

以上是生活随笔為你收集整理的关于 【通过代理访问】 的研究,【突破 IP ,“无限制”投票】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。