小編給大家分享一下易語言如何判斷多線程驗證代理是否有效,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)服務(wù)項目包括穆棱網(wǎng)站建設(shè)、穆棱網(wǎng)站制作、穆棱網(wǎng)頁制作以及穆棱網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,穆棱網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到穆棱省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
載入程序
.版本 2 .程序集 啟動 .子程序 _啟動子程序, 整數(shù)型 載入 (_主窗口, , 假) 返回 (0)
多線程的方式驗證ip的代碼
此功能需要加載魚刺類_線程操作模塊和魚刺類_HTTP模塊
.版本 2 .支持庫 iext .程序集 主窗口程序集 .程序集變量 線程池, 魚刺類_線程池Ex, , , 框架 .程序集變量 臨界, 魚刺類_臨界許可 .程序集變量 線程, 魚刺類_線程操作 .程序集變量 驗證網(wǎng)址, 文本型, , , 配置 .程序集變量 驗證字符串, 文本型 .程序集變量 是否UTF解碼, 邏輯型 .程序集變量 連接超時, 整數(shù)型 .程序集變量 驗證超時, 整數(shù)型 .程序集變量 已完成數(shù)量, 整數(shù)型, , , 記錄 .程序集變量 有效數(shù)量, 整數(shù)型 .程序集變量 失效數(shù)量, 整數(shù)型 .程序集變量 保證顯示索引, 整數(shù)型 .子程序 _按鈕_測試_被單擊 .局部變量 測試, 魚刺類_線程操作, 靜態(tài) .局部變量 bool, 邏輯型 按鈕_測試.禁止 = 真 驗證網(wǎng)址 = 編輯框_驗證網(wǎng)址.內(nèi)容 驗證字符串 = 編輯框_驗證字符串.內(nèi)容 是否UTF解碼 = 選擇框_UTF解碼.選中 .如果真 (驗證網(wǎng)址 = “” 或 驗證字符串 = “”) 信息框 (“網(wǎng)址或字符串填寫錯誤!”, 48 + 65536, ) 按鈕_測試.禁止 = 假 返回 () .如果真結(jié)束 bool = 測試.創(chuàng)建 (&測試驗證網(wǎng)址) .如果真 (bool = 真) 測試.等待2 () .判斷開始 (測試.取返回值 () = 1) ' 利用線程返回狀態(tài)判斷測試是否成功 信息框 (“測試成功!驗證網(wǎng)址和關(guān)鍵字可用”, 64 + 65536, ) .默認 信息框 (“測試失?。◎炞C網(wǎng)址和關(guān)鍵字符串不可用”, 48 + 65536, ) .判斷結(jié)束 .如果真結(jié)束 按鈕_測試.禁止 = 假 .子程序 測試驗證網(wǎng)址, 整數(shù)型 .局部變量 http, WinHttp .局部變量 str, 文本型 http.Open (“GET”, 驗證網(wǎng)址) http.Set_User_Agent () http.Send () .判斷開始 (是否UTF解碼 = 真) str = http.GetResponseTextUtf8 () .默認 str = http.GetResponseText () .判斷結(jié)束 .如果真 (尋找文本 (str, 驗證字符串, , 假) ≠ -1) 返回 (1) ' 返回狀態(tài)用于判斷是否成功 .如果真結(jié)束 返回 (0) .子程序 _按鈕_導(dǎo)入_被單擊 .局部變量 int, 整數(shù)型 .局部變量 str, 文本型 .局部變量 strs, 文本型, , "0" .局部變量 ip, 文本型 .局部變量 端口, 文本型 .局部變量 o, 整數(shù)型 通用對話框_瀏覽.類型 = 0 通用對話框_瀏覽.過濾器 = “文本文檔(*.txt)|*.txt” .如果真 (通用對話框_瀏覽.打開 () = 假) 返回 () .如果真結(jié)束 按鈕_導(dǎo)入.禁止 = 真 int = 打開文件 (通用對話框_瀏覽.文件名, 1, ) .如果真 (int = 0) 按鈕_導(dǎo)入.禁止 = 假 返回 () .如果真結(jié)束 .判斷循環(huán)首 (是否在文件尾 (int, ) = 假) str = 讀入一行 (int) str = 刪首尾空 (str) strs = 分割文本 (str, “:”, 2) .如果真 (取數(shù)組成員數(shù) (strs) = 2) ip = strs [1] 端口 = strs [2] .如果真 (ip ≠ “” 且 端口 ≠ “”) o = 列表_代理.插入表項 (, , , 0, , ) 列表_代理.置標題 (o, 0, 到文本 (o + 1)) 列表_代理.置標題 (o, 1, ip) 列表_代理.置標題 (o, 2, 端口) 列表_代理.置標題 (o, 3, “**”) 列表_代理.置標題 (o, 4, “-”) _處理事件 () .如果真結(jié)束 .如果真結(jié)束 .判斷循環(huán)尾 () 關(guān)閉文件 (int) 狀態(tài)條_狀態(tài).置文本 (0, “代理總數(shù):” + 到文本 (列表_代理.取表項數(shù) ())) 按鈕_導(dǎo)入.禁止 = 假 .子程序 _按鈕_導(dǎo)出_被單擊 .局部變量 bool, 邏輯型 .局部變量 i, 整數(shù)型 .局部變量 int, 整數(shù)型 .局部變量 ip, 文本型 .局部變量 端口, 文本型 .局部變量 time, 文本型 .局部變量 stop, 文本型 .局部變量 text, 文本型 .局部變量 len, 整數(shù)型 .如果真 (列表_代理.取表項數(shù) () < 1) 信息框 (“沒代理可導(dǎo)出”, 48 + 65536, , ) 返回 () .如果真結(jié)束 bool = 信息框 (“是否只導(dǎo)出有效代理”, #是否鈕 + 48 + 65536, ) = #是鈕 通用對話框_瀏覽.類型 = 1 通用對話框_瀏覽.過濾器 = “文本文檔(*.txt)|*.txt” .如果真 (通用對話框_瀏覽.打開 () = 假) 返回 () .如果真結(jié)束 按鈕_導(dǎo)出.禁止 = 真 int = 打開文件 (通用對話框_瀏覽.文件名, 4, ) 移到文件尾 (int) .變量循環(huán)首 (0, 列表_代理.取表項數(shù) () - 1, 1, i) _處理事件 () stop = 列表_代理.取標題 (i, 4) .如果真 (bool = 真 且 stop ≠ “驗證成功”) 到循環(huán)尾 () .如果真結(jié)束 ip = 列表_代理.取標題 (i, 1) 端口 = 列表_代理.取標題 (i, 2) time = 列表_代理.取標題 (i, 3) text = ip + “:” + 端口 + “----” + time .如果真 (bool = 假) text = text + “----” + stop .如果真結(jié)束 寫文本行 (int, text) len = len + 1 .變量循環(huán)尾 () 關(guān)閉文件 (int) 信息框 (“保存:” + 通用對話框_瀏覽.文件名 + “ 成功!” + #換行符 + “共導(dǎo)出:” + 到文本 (len) + “ 條?!? 64 + 65536, ) 按鈕_導(dǎo)出.禁止 = 假 .子程序 _按鈕_開始停止_被單擊 .局部變量 text, 文本型 .局部變量 bool, 邏輯型 .局部變量 len, 整數(shù)型 按鈕_開始停止.禁止 = 真 text = 按鈕_開始停止.標題 .判斷開始 (text = “開始驗證”) len = 列表_代理.取表項數(shù) () .如果真 (len < 1) 信息框 (“請先導(dǎo)入要驗證的代理”, 48 + 65536, ) 按鈕_開始停止.禁止 = 假 返回 () .如果真結(jié)束 驗證網(wǎng)址 = 刪首尾空 (編輯框_驗證網(wǎng)址.內(nèi)容) 驗證字符串 = 編輯框_驗證字符串.內(nèi)容 .如果真 (驗證網(wǎng)址 = “” 或 驗證字符串 = “”) 信息框 (“驗證網(wǎng)址或字符串不正確!”, 48 + 65536, ) 按鈕_開始停止.禁止 = 假 返回 () .如果真結(jié)束 是否UTF解碼 = 選擇框_UTF解碼.選中 連接超時 = 到整數(shù) (編輯框_連接超時.內(nèi)容) 驗證超時 = 到整數(shù) (編輯框_驗證超時.內(nèi)容) 連續(xù)賦值 (0, 已完成數(shù)量, 有效數(shù)量, 失效數(shù)量, 保證顯示索引) 更新狀態(tài)條 () bool = 線程.創(chuàng)建 (&工作) .如果真 (bool = 真) 返回 () .如果真結(jié)束 .判斷 (text = “停止驗證”) 按鈕_開始停止.標題 = “正在停止” 按鈕_暫停繼續(xù).禁止 = 真 按鈕_暫停繼續(xù).標題 = “暫停驗證” 線程池.銷毀 (0) 線程.等待2 () 按鈕_開始停止.標題 = “開始驗證” .默認 .判斷結(jié)束 按鈕_開始停止.禁止 = 假 .子程序 _按鈕_暫停繼續(xù)_被單擊 .局部變量 text, 文本型 按鈕_暫停繼續(xù).禁止 = 真 text = 按鈕_暫停繼續(xù).標題 .判斷開始 (text = “暫停驗證”) 線程池.暫停 () 按鈕_暫停繼續(xù).標題 = “繼續(xù)驗證” .判斷 (text = “繼續(xù)驗證”) 線程池.繼續(xù) () 按鈕_暫停繼續(xù).標題 = “暫停驗證” .默認 .判斷結(jié)束 按鈕_暫停繼續(xù).禁止 = 假 .子程序 工作 .局部變量 并發(fā)線程數(shù), 整數(shù)型 .局部變量 bool, 邏輯型 .局部變量 len, 整數(shù)型 .局部變量 i, 整數(shù)型 .局部變量 空閑線程數(shù), 整數(shù)型 .局部變量 int, 整數(shù)型 按鈕_開始停止.標題 = “正在啟動” .如果真 (連接超時 < 500) 連接超時 = 500 .如果真結(jié)束 .如果真 (驗證超時 < 500) 驗證超時 = 500 .如果真結(jié)束 臨界.進入 () 并發(fā)線程數(shù) = 到整數(shù) (編輯框_并發(fā)線程數(shù).內(nèi)容) 臨界.退出 () .如果真 (并發(fā)線程數(shù) < 1) 并發(fā)線程數(shù) = 1 .如果真結(jié)束 bool = 線程池.創(chuàng)建 (并發(fā)線程數(shù)) .如果真 (bool = 假) 臨界.進入 () 按鈕_開始停止.標題 = “開始驗證” 按鈕_開始停止.禁止 = 假 臨界.退出 () 返回 () .如果真結(jié)束 臨界.進入 () 按鈕_開始停止.標題 = “停止驗證” 按鈕_開始停止.禁止 = 假 按鈕_暫停繼續(xù).標題 = “暫停驗證” 按鈕_暫停繼續(xù).禁止 = 假 len = 列表_代理.取表項數(shù) () - 1 ' 列表索引從0開始 臨界.退出 () i = 0 .判斷循環(huán)首 (i ≤ len) 空閑線程數(shù) = 線程池.取_空閑線程數(shù) () .如果真 (空閑線程數(shù) > 0) int = len - i + 1 .如果真 (int > 空閑線程數(shù)) int = 空閑線程數(shù) .如果真結(jié)束 .計次循環(huán)首 (int, ) 線程池.投遞任務(wù) (&驗證子程序, i) i = i + 1 .計次循環(huán)尾 () .如果真結(jié)束 bool = 線程池.等待任務(wù)動態(tài) () .如果真 (bool = 假) ' 返回假 表示線程池被執(zhí)行銷毀 也表示用戶手動點了停止 返回 () .如果真結(jié)束 更新狀態(tài)條 () .判斷循環(huán)尾 () ' 等待剩余任務(wù)執(zhí)行完畢 .判斷循環(huán)首 (線程池.取_是否空閑 () = 假) .如果真 (線程池.取_狀態(tài) () ≠ #線程池_正在工作) 返回 () .如果真結(jié)束 bool = 線程池.等待任務(wù)動態(tài) (100) .如果真 (bool = 真) 更新狀態(tài)條 () .如果真結(jié)束 .判斷循環(huán)尾 () 更新狀態(tài)條 () ' 執(zhí)行停止 臨界.進入 () 按鈕_開始停止.禁止 = 真 按鈕_開始停止.標題 = “正在停止” 按鈕_暫停繼續(xù).禁止 = 真 按鈕_暫停繼續(xù).標題 = “暫停驗證” 臨界.退出 () 線程池.銷毀 (0) 信息框 (“驗證完畢!” + #換行符 + “有效代理:” + 到文本 (有效數(shù)量) + #換行符 + “失效代理:” + 到文本 (失效數(shù)量), 64 + 65536, ) 臨界.進入 () 按鈕_開始停止.標題 = “開始驗證” 按鈕_開始停止.禁止 = 假 臨界.退出 () .子程序 驗證子程序 .參數(shù) i, 整數(shù)型 .局部變量 ip地址, 文本型 .局部變量 端口, 文本型 .局部變量 http, WinHttp .局部變量 str, 文本型 .局部變量 time, 整數(shù)型 .局部變量 timing, 整數(shù)型 .局部變量 bool, 邏輯型 .如果真 (線程池.取_狀態(tài) () ≠ #線程池_正在工作) 返回 () .如果真結(jié)束 臨界.進入 () ip地址 = 列表_代理.取標題 (i, 1) 端口 = 列表_代理.取標題 (i, 2) 臨界.退出 () .如果真 (ip地址 = “” 或 端口 = “”) 原子_遞增 (已完成數(shù)量) 返回 () .如果真結(jié)束 time = 取啟動時間 () http.SetProxy (2, ip地址 + “:” + 端口) http.SetTimeouts (連接超時, 連接超時, 驗證超時, 驗證超時) http.Open (“GET”, 驗證網(wǎng)址, 真) http.Set_User_Agent () http.Send () timing = 驗證超時 \ 1000 + 選擇 (驗證超時 % 1000 > 0, 1, 0) .計次循環(huán)首 (timing, ) ' 這樣寫是為了能快速相應(yīng)停止 bool = http.WaitForResponse (1) ' 單位 秒 .如果真 (bool = 真) 跳出循環(huán) () .如果真結(jié)束 .如果真 (線程池.取_狀態(tài) () ≠ #線程池_正在工作) ' 當用戶手動停止時 線程池狀態(tài)就變了 這樣就能觸發(fā)返回了 http.Abort () ' 終止連接 原子_遞增 (已完成數(shù)量) 返回 () .如果真結(jié)束 .計次循環(huán)尾 () time = 取啟動時間 () - time ' 算出超時 .判斷開始 (bool = 真) .判斷開始 (是否UTF解碼 = 真) str = http.GetResponseTextUtf8 () .默認 str = http.GetResponseText () .判斷結(jié)束 .默認 http.Abort () .判斷結(jié)束 .判斷開始 (str = “”) 原子_遞增 (失效數(shù)量) 設(shè)置表象 (i, “*/*”, 選擇 (time > 連接超時, “驗證失敗”, “連接超時”), 2) .判斷 (尋找文本 (str, 驗證字符串, , 假) ≠ -1) 原子_遞增 (有效數(shù)量) 設(shè)置表象 (i, 到文本 (time), “驗證成功”, 選擇 (time < 10000, 1, 3)) .默認 原子_遞增 (失效數(shù)量) 設(shè)置表象 (i, “*/*”, “驗證失敗”, 2) .判斷結(jié)束 原子_遞增 (已完成數(shù)量) .子程序 設(shè)置表象 .參數(shù) index, 整數(shù)型 .參數(shù) time, 文本型 .參數(shù) stop, 文本型 .參數(shù) State, 整數(shù)型 臨界.進入 () 列表_代理.置標題 (index, 3, time) 列表_代理.置標題 (index, 4, stop) 列表_代理.置狀態(tài)圖片 (index, State) .如果真 (index > 保證顯示索引) 列表_代理.保證顯示 (index + 1) 保證顯示索引 = index + 1 .如果真結(jié)束 臨界.退出 () .子程序 更新狀態(tài)條 臨界.進入 () 狀態(tài)條_狀態(tài).置文本 (1, “已完成驗證:” + 到文本 (已完成數(shù)量)) 狀態(tài)條_狀態(tài).置文本 (2, “有效代理數(shù):” + 到文本 (有效數(shù)量)) 狀態(tài)條_狀態(tài).置文本 (3, “失效代理數(shù):” + 到文本 (失效數(shù)量)) 臨界.退出 () .子程序 __主窗口_將被銷毀 線程池.銷毀 () ' 防止用戶意外點擊紅叉叉
運行結(jié)果:
以上是“易語言如何判斷多線程驗證代理是否有效”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站標題:易語言如何判斷多線程驗證代理是否有效
URL標題:http://chinadenli.net/article20/gigdjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、品牌網(wǎng)站制作、網(wǎng)站導(dǎo)航、定制網(wǎng)站、ChatGPT、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)