青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

不會(huì)飛的鳥

2010年12月10日 ... 不鳥他們!??! 我要用自己開發(fā)的分布式文件系統(tǒng)、分布式調(diào)度系統(tǒng)、分布式檢索系統(tǒng), 做自己的搜索引擎?。?!大魚有大志!??! ---楊書童

[轉(zhuǎn)]驗(yàn)證碼識(shí)別技術(shù)

模擬精靈是首個(gè)公開最有效的驗(yàn)證碼識(shí)別技術(shù)的軟件,
使用模擬精靈制作了大量的免費(fèi)、商用群發(fā)軟件,對(duì)很多復(fù)雜BT的驗(yàn)證碼都能成功的識(shí)別。
但是驗(yàn)證碼仍然需要精湛的技術(shù)與足夠的耐心。請(qǐng)牢記這一點(diǎn)。
驗(yàn)證碼識(shí)別不適合浮躁的人去做。

驗(yàn)證碼識(shí)別是一項(xiàng)特殊的技術(shù),任何一個(gè)公開的驗(yàn)證碼識(shí)別代碼都會(huì)很快的失效。
因?yàn)榇a的公開后相關(guān)網(wǎng)站都會(huì)很快的更改驗(yàn)證碼。
所以下面我只會(huì)介紹其原理。

在這里討論驗(yàn)證碼識(shí)別技術(shù)純粹基于技術(shù)研究目的。
公開此技術(shù)也是為了讓更多的網(wǎng)站采取更有效的防范措施。
禁止任何人利用這里介紹的驗(yàn)證碼識(shí)別技術(shù)濫發(fā)垃圾信息。

本文介紹的驗(yàn)證碼識(shí)別適用于比較復(fù)雜的圖片驗(yàn)證碼,也是大多數(shù)網(wǎng)站采用的方法。
有一些網(wǎng)站的驗(yàn)證碼極簡(jiǎn)單,例如在網(wǎng)頁(yè)中直接顯示驗(yàn)證碼字符而不是圖片,或者圖片的文件名直接就是驗(yàn)證碼上的字符。
或者有其他規(guī)律可循,或者有其他明顯的漏洞可以利用(例如通過(guò)改寫訪問(wèn)驗(yàn)證碼頁(yè)面的源代碼使驗(yàn)證碼不刷新)。

這一類的驗(yàn)證碼識(shí)別極其簡(jiǎn)單,只要熟練掌握web庫(kù)、element庫(kù)的函數(shù)即可,不需要使用下面介紹的方法。

一、下載驗(yàn)證碼樣本

打開c:\test文件夾,選“查看縮略圖”,
然后重復(fù)運(yùn)行下面的LAScript腳本,每運(yùn)行一次,就查看c:\test下自動(dòng)生成的圖片,把圖片上的字符改為文件名.
例如圖片上面顯示5,就把文件名改為5.jpg.

如果變化比較復(fù)雜的驗(yàn)證碼,可以對(duì)每個(gè)字符多用幾個(gè)樣本,第一個(gè)字符為驗(yàn)證碼字符,第二個(gè)字符可以為任意字符。
例如:5a.jpg , 5b.jpg , 5c.jpg ...........等等。 
樣本多就會(huì)識(shí)別能力就越強(qiáng)。

img = image.new();

--下載圖像,沒(méi)有后綴名要顯示指定*.bmp格式

img:getURL("http://www.***.com/test.asp","*.png");
assert(img:ok(),"下載驗(yàn)證碼失敗");

img:Crop(4 ,3 , 56 ,18 )
img:save("c:\\test\\test.jpg") --保存到硬盤


--折分圖片,指定一行四列
img2,img3,img4,img5 = img:split(1,4);

img2:save("c:\\test\\0001.jpg")
img3:save("c:\\test\\0002.jpg")
img4:save("c:\\test\\0003.jpg")
img5:save("c:\\test\\0004.jpg")

image.del(img);


 如何確定圖片后綴名

在整個(gè)驗(yàn)證碼識(shí)別過(guò)程中,格式與后綴名一定不能搞錯(cuò),否則就會(huì)失敗。
通常:asp的驗(yàn)證碼是bmp格式,php的驗(yàn)證碼是png格式,其他驗(yàn)證碼很多是jpg格式。
簡(jiǎn)單的,在驗(yàn)證碼上右鍵點(diǎn)選“圖片另存為”,就可以看到格式(不一定準(zhǔn)確)。

另外,你可以用UltraEdit等以二進(jìn)制方式打開看文件頭部

首先下載:
str = web.getURL("http://www.***.com/test.asp")
string.save( str,"c:\\test.bin")

然后用UE打開test.bin看文件頭部(第一行)

jpg文件頭部有 JFIF 字眼
png文件頭部 有 PNG 字眼
gif文件頭部有 GIF字眼

如果你搞不清楚,這時(shí)候就不要指定后綴名
img:getURL("http://vwww.***.com/test.asp","")
這樣就可以下載了

二、生成驗(yàn)證碼樣本數(shù)據(jù)庫(kù)

復(fù)制下面的代碼并粘貼到fap程序的「腳本區(qū)塊」內(nèi),然后點(diǎn)擊"回放運(yùn)行",最后再點(diǎn)擊"讀取源代碼"。

你就可以在ApeML源代碼最后面的「數(shù)據(jù)區(qū)塊」中看到生成的驗(yàn)證碼樣本了。
將「數(shù)據(jù)區(qū)塊」的內(nèi)容復(fù)制需要使用驗(yàn)證碼識(shí)別的fap模擬程序中覆蓋「數(shù)據(jù)區(qū)塊」即可。

local tkey ={A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0};
 
--在字典中添加所有數(shù)字鍵
for i =0,9,1 do
    tkey[ tostring(i) ] = 0
end;

--如果一個(gè)字符有多個(gè)樣本,例如 5A.jpg 5B.jpg 5C.jpg
for k,v in pairs(tkey) do 
    if((#k)~=2)then --如果元素鍵名不是兩位字符
        tkey[k.."A" ]=0;
        tkey[k.."B" ]=0;
        tkey[k.."C" ]=0;
        tkey[k]=nil;--刪除單字符的鍵名
    end;
end;
 
--k參數(shù)為鍵,v參數(shù)表示值 一個(gè)典型的tkeyle迭代器回調(diào)函數(shù)
loadtkey = function(k,v) 
    local img = image.new();
    
    img:load("C:\\test\\"..k..".jpg");
    assert(img:ok(),"C:\\test\\"..k..".jpg".."\n不是有效的圖片");
    
    img:bpp(1);
    img:bpp(24);
    --通過(guò)上面兩句,輕松去掉驗(yàn)證碼上的雜色雜點(diǎn)
    
    img:Crop( 1 , 0 , 9 , 10);--修剪單個(gè)字符
    img:median(2);--中值濾波進(jìn)一步去雜點(diǎn)
    
    tkey[k]string.encode( img:getBytes("*.jpg") , "")--因?yàn)檗D(zhuǎn)換到字符串還是二進(jìn)制,所以用base64進(jìn)行編碼
    image.del(img);
end;
 
--遍歷表tkey的所有元素,調(diào)用loadtkey加載圖片文件 
for k,v in pairs(tkey) do 
    loadtkey(k,v);
end;
 
--把所有圖片保存到數(shù)據(jù)島,
ape:saveTable(tkey,"驗(yàn)證碼樣本")

三、驗(yàn)證碼識(shí)別

將下面的代碼添加到fap模擬程序最前面的init腳本區(qū)塊中即可

--從數(shù)據(jù)區(qū)塊讀取base64編碼的圖片數(shù)據(jù)
codekey = ape:loadTable("驗(yàn)證碼樣本");
local timg = {}--這是一個(gè)圖像數(shù)組,用來(lái)儲(chǔ)存還原后的驗(yàn)證碼樣本的圖片數(shù)據(jù)
--必須進(jìn)行一個(gè)轉(zhuǎn)換,因?yàn)閏odekey里面只是base64編碼的普通字符串,而timg 將是真正的圖片對(duì)象(二進(jìn)制數(shù)據(jù))
 
--還原到圖片對(duì)象
toImage = function(k,v)
    local img = image.new();
    local str = string.decode( v ,"");--首先進(jìn)行base64解碼,將純文本轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)
    img:setBytes( str ,"*.jpg");--將二進(jìn)制數(shù)據(jù)還原為圖像
    timg[k] = img; 
end;
 
--載入驗(yàn)證碼樣本
tkey = ape:loadTable("驗(yàn)證碼樣本");
for k,v in pairs(tkey) do  --驗(yàn)證樣本
    toImage(k,v)--轉(zhuǎn)換為圖像
end;
    
--轉(zhuǎn)換圖片驗(yàn)證碼到字符串的函數(shù)
function ImgToString(img)
    function test(imgX) --test是一個(gè)被包含在函數(shù)中的內(nèi)部函數(shù)
        sleep(0)
        local limit = (60 * 20) + (60 * 20)--最小相似度 local關(guān)鍵字聲明為局部變量
        local chr = "A"--讀取的字符
    
    
        --testimg是一個(gè)被包含在函數(shù)中的內(nèi)部函數(shù),作為table.foreach的回調(diào)函數(shù),k參數(shù)表示鍵,v參數(shù)表示值
        testimg = function(k,v)

            --調(diào)用image.testXX()函數(shù)得出相似度,類似的函數(shù)還有image.testX() image.test() 
            local n = imgX:testXX(timg[k])
            if(n<limit)then --比較最小相似度
                  limit = n;
                  chr = k.."";
            end;
        end;
    
        --遍歷timg表,并調(diào)用testimg函數(shù)
        for k,v in pairs(timg) do  
           testimg(k,v);  
        end;

        return string.left(chr,1)--返回讀取到的字符串首字符(如果每個(gè)字符有多個(gè)樣本)
    end;
    
    
    --修剪圖片    
    image.Crop(img, 4 ,3 , 56 ,18 )
    img:bpp(1);
    img:bpp(24);
    --上面的過(guò)程必須與下載樣本時(shí)的代碼完全一致。
    
    --使用split函數(shù)分割圖片
    local img2,img3,img4,img5 = img:split(1,4);
    win.messagePrint("正在檢測(cè)圖片,請(qǐng)稍候....");
    return test(img2)..test(img3)..test(img4)..test(img5);
 
end;

需要識(shí)別驗(yàn)證碼的地方添加類似下面的代碼:

img = image.new()
img:getURL("http://www.***.com/test.asp","*.jpg")

--因?yàn)樗⑿铝蓑?yàn)證碼與頁(yè)面不一致,把驗(yàn)證碼畫到屏幕上
local x,y = mouse.getPos()
img:paint(x,y,60 ,20 )

local str = ImgToString(img);

--下面我們把驗(yàn)證碼的每個(gè)字符都轉(zhuǎn)換為大寫,并控制鍵盤順序按鍵
code1 = string.upper( string.sub(str,1,1) ); 
code2 = string.upper( string.sub(str,2,2) ); 
code3 = string.upper( string.sub(str,3,3) ); 
code4 = string.upper( string.sub(str,4,4) );
key.press(100,code1,code2,code3,code4);

上面我們用了模擬按鍵的方法輸入驗(yàn)證碼。
實(shí)際上大多時(shí)候可以用更簡(jiǎn)單的方法,如下:

ele = wb:getEle("驗(yàn)證碼控件名字");
ele:setAttribute("value",str)

 為什么我的驗(yàn)證碼與頁(yè)面上不一樣

因?yàn)槲覀兪褂?span id="hvzpftn" class="HtmlCode">img:getURL讀取驗(yàn)證碼時(shí)已經(jīng)刷新了驗(yàn)證碼。
所以驗(yàn)證碼與頁(yè)面上顯示的并不一樣,您只需要識(shí)別最新的驗(yàn)證碼即可。

 如何直接獲取頁(yè)面的上圖片,而不是重新下載

有些驗(yàn)證碼是綁定頁(yè)面的,必須識(shí)別頁(yè)面上的驗(yàn)證碼才行。
那么可以使用image.capture函數(shù)直接抓屏屏幕上的圖片即可。
請(qǐng)參考:image.capture函數(shù)。

更好的方法是使用ele:exec("Copy")函數(shù)直接拷貝頁(yè)面上的圖片到剪貼板。
然后使用 img:getClipBD() 獲取圖片。 
請(qǐng)參考:ele:exec("Copy")函數(shù) img:getClipBD()函數(shù)

四、關(guān)于剪切圖片



看上面的示意圖,Crop就是選取綠色方框內(nèi)的區(qū)域去清除綠色方框外面的區(qū)域.
必須保證里面的面積正好可以平均分成四塊(假設(shè)這里是四個(gè)驗(yàn)證碼字符)

這樣以后調(diào)用 img:split(1,4) 就正好分成四個(gè)字符了
分成四份的小圖片其寬度應(yīng)當(dāng)正好是上面的紅色小方塊的寬度。
高度與綠色方框一樣,我這里畫的參次不齊是為了讓大家看清楚。

如果你Crop的參數(shù)值不對(duì),那么split就出錯(cuò)了.
下載驗(yàn)證碼圖片以后,可以使用圖像編輯軟件打開高倍放大。

五、使用種子填充算法去除驗(yàn)證碼上的干擾線

模擬精靈識(shí)別驗(yàn)證碼的能用是強(qiáng)大的,一個(gè)函數(shù)即可以去除雜色雜點(diǎn)。

img:bpp(1)
img:bpp(24)

經(jīng)過(guò)上面兩句代碼的處理,速度很快,所有背景、干擾點(diǎn)、雜色蕩然無(wú)存。

但是有時(shí)候驗(yàn)證碼中有大量的干擾線,并且位置隨機(jī)變動(dòng)的太歷害,
這時(shí)候我們?cè)谔幚眚?yàn)證碼以前首先去除這些干擾線并準(zhǔn)確的去除背景提取字符.

下面是一個(gè)模擬精靈初步處理后的驗(yàn)證碼圖片.已經(jīng)去除了雜色、雜點(diǎn).但是上面還是有干擾線.

一個(gè)可選的辦法是用中值濾波再處理一下。img:median(2); 一個(gè)函數(shù)調(diào)用就可以,但
是這樣雖然去掉了干擾線,原來(lái)的字符也被少量的破壞了。

下面是使用種子填充算法去除干擾線的源代碼,不但能去除雜點(diǎn),
而且可以去除周圍的空白(提取位置隨機(jī)變化的驗(yàn)證碼),
稍加修改還能有更多的用途.

下面是自動(dòng)處理以后的效果

下面是全部的源代碼:

--[[
用一個(gè)table結(jié)構(gòu){x=0; y=0}表示圖像上的「坐標(biāo)點(diǎn)」
用一組點(diǎn)構(gòu)成table結(jié)構(gòu)表示圖像上的一條「線」。所有相連的黑色的點(diǎn)被認(rèn)為是一條「連通線」。
找出最長(zhǎng)的一條「連通線」,被認(rèn)為是字符,其他的認(rèn)為是雜點(diǎn)。
 
 
算法原理與種子填充算法相似。
 
首先讓用img:bpp函數(shù)處理為黑白圖片,并初步去除雜色。
 
先找到一個(gè)黑點(diǎn),創(chuàng)建一個(gè)表示「坐標(biāo)點(diǎn)」對(duì)象,并添加到「連通線」中。
然后在黑點(diǎn)周圍8個(gè)點(diǎn)中,再找黑色的點(diǎn),找到就添加到「連通線」,這樣一直遞歸下去
直到遍歷圖像所有點(diǎn),可能有幾塊。
 
清除雜點(diǎn)使用方法
image.scan(img);
 
清除雜點(diǎn)并切去掉周圍的空白
image.scan(img,true);
--]]
f
unction image.scan(img,crop)
   
    --用一個(gè)table數(shù)組記錄所有的「連通線」
     assert(img:ok(),"image.scan 的參數(shù)必須是一個(gè)有效的圖片");
    
     local tlines ={}
     
     --首先計(jì)算出圖片的高度寬度,避免重復(fù)的調(diào)用
     local w = img:width();
     local h = img:height();
          
  
    --[[以table形式定義一個(gè)數(shù)組,對(duì)應(yīng)圖象中的每個(gè)點(diǎn)。
    作用相當(dāng)一個(gè)開關(guān),首先值為false,但黑點(diǎn)首次被遍歷到時(shí)。把這個(gè)值變?yōu)閠rue。
    下次,再找到這個(gè)點(diǎn)時(shí)忽略。避免重復(fù)加入連通線。  
    --]]
    local tchked ={};
    for i=0,w,1  do
        tchked[i]={};
        for j=0,h, do
            tchked[i][j]=false;
        end;
    end;
     
    -----去噪
    img:bpp(1);
    img:bpp(24);
     
    --首先計(jì)算出各點(diǎn)的顏色值,避免在循環(huán)遞歸中重復(fù)的取
    local tcl={};
    for i=0,w, do
        tcl[i]={};
        for j=0,h,  do
            tcl[i][j]=img:getPos(i,j);
        end;
    end;
 
    
    --[[
    算點(diǎn)數(shù)函數(shù)
    參數(shù)x,y 坐標(biāo)
    參數(shù)tab 所屬連通線;
    --]] 
    local   function  seed(x,y,tab)
    
        ---出界了則返回
        if(x<0 or y<0 or x>w or y>h) then
            return;
        end;
              
        ---點(diǎn)的顏色為白色時(shí),返回,不處理。
        if(tcl[x][y]==16777215)  then
            return;
        end;
        
        ---值為1,則計(jì)數(shù)加1,返回
        if ( tchked[x][y]) then
            return ;
        else
            table.insert(tab,{x=x,y=y} );--添加到連通線里
            tchked[x][y]=true;---當(dāng)值為0時(shí),把值置為1。
            seed(x+1,y-1,tab);
            seed(x,y-1,tab);
            seed(x-1,y-1,tab);
            seed(x-1,y,tab);
            seed(x+1,y,tab);
            seed(x-1,y+1,tab);
            seed(x,y+1,tab);
            return seed(x+1,y+1,tab)--這里可以用一個(gè)尾調(diào)用(參考教程中的函數(shù)部份),加快遞歸的速度。
        end;
    end;
 
    
    ---------------------------
       
    ----遍歷圖像中的所有點(diǎn)
    for i=0,w,1   do
        for j=0,h, do
            ---如果是黑色的點(diǎn),而且沒(méi)有被計(jì)過(guò)數(shù),則調(diào)用seed函數(shù)。
            if(tcl[i][j]==0 and (not tchked[i][j])) then        
                local tab = {}
                seed(i,j,tab);
                table.insert(tlines,tab)--添加一條連通線
    
            end;
        end;
    end;
          
    --現(xiàn)在tlines 里記錄了的有的連通線,我們現(xiàn)在需要根據(jù)連通線的長(zhǎng)度排序  
    sproc =  function(l,l2)   
        return table.maxn(l) > table.maxn(l2);--長(zhǎng)的連通線排到前面 
    end;
    table.sort(tlines,sproc)
               
    --把圖像全部畫成白色的點(diǎn)      
    for i=0,w,1  do
        for j=0,h,1  do
            img:setPos( i , j, 16777215);
        end;
    end;
          
    --然后把最長(zhǎng)的一條連通線畫上去
    for i,point in  ipairs(tlines[1])  do
        img:setPos( point.x, point.y , 0);   
    end;
    
  
    --如果需要去掉周圍的空白
    if(crop)then
        local n = table.maxn(tlines[1])
            
        --排序最長(zhǎng)連通線中的所有坐標(biāo)點(diǎn)
        sproc =  function(pt,pt2)   
            return  (pt.x <pt2.x );--*左的排前面
        end;
        table.sort(tlines[1],sproc);
        local x,x2 = tlines[1][1].x, tlines[1][n].x;
    
        --排序最長(zhǎng)連通線中的所有坐標(biāo)點(diǎn)
        sproc =  function(pt,pt2)   
            return (pt.y <pt2.y );--*上的排前面
        end;
        table.sort(tlines[1],sproc);
        local y,y2 = tlines[1][1].y, tlines[1][n].y;
        
        img:Crop( x,y,x2+1,y2)
    end;
    
end;
    

 

posted on 2011-09-14 13:38 不會(huì)飛的鳥 閱讀(2304) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            日韩视频在线观看一区二区| 欧美日韩国产综合在线| 麻豆精品传媒视频| 午夜性色一区二区三区免费视频| 亚洲人体大胆视频| 尤妮丝一区二区裸体视频| 国产毛片一区二区| 新狼窝色av性久久久久久| 久久米奇亚洲| 久久国产精品久久精品国产| 午夜精品理论片| 久久久久91| 欧美日韩在线精品| 国产午夜一区二区三区| 最新高清无码专区| 亚洲午夜久久久久久尤物 | 亚洲欧美日韩天堂| 欧美一区二区免费| 欧美v日韩v国产v| 国产精品视频yy9099| 影音国产精品| 亚洲一区二区在线观看视频| 久久综合精品国产一区二区三区| 亚洲欧洲日韩在线| 亚洲黄页一区| 欧美一区亚洲一区| 欧美日韩一区二区三区高清| 国内精品久久久久影院薰衣草| 亚洲精品乱码久久久久久蜜桃91| 亚洲摸下面视频| 欧美电影专区| 久久gogo国模裸体人体| 国产精品高潮呻吟| 亚洲美女在线看| 免费视频一区二区三区在线观看| 亚洲视频大全| 欧美精品v日韩精品v韩国精品v| 国产区在线观看成人精品| 一本一本a久久| 欧美高清日韩| 久久成人18免费网站| 国产精品久久看| 一区二区三区国产精华| 欧美成人午夜77777| 欧美一区二区三区久久精品茉莉花 | 亚洲自拍偷拍福利| 欧美日本国产一区| 亚洲片国产一区一级在线观看| 久久国产视频网| 亚洲一区二区久久| 国产精品xvideos88| 日韩午夜av在线| 欧美电影免费观看| 久久综合色影院| 在线观看欧美成人| 久久精品综合一区| 欧美一区二区免费观在线| 国产女主播在线一区二区| 亚洲主播在线观看| 久久久久久久999| 亚洲精品免费在线| 亚洲国产一区视频| 麻豆视频一区二区| 亚洲国产日韩欧美在线图片 | 美国十次成人| 久久久av水蜜桃| 激情综合五月天| 免费不卡欧美自拍视频| 久久久久久久欧美精品| 激情综合五月天| 久久一区中文字幕| 伊人天天综合| 亚洲第一免费播放区| 欧美国产三区| 亚洲男人第一网站| 亚洲免费婷婷| 伊人久久大香线蕉综合热线| 蜜月aⅴ免费一区二区三区| 蜜桃久久av一区| 99精品国产高清一区二区| 宅男精品视频| 韩国三级在线一区| 久久色在线播放| 免费不卡在线视频| 日韩一级片网址| 99精品99| 国产精品一卡二卡| 另类亚洲自拍| 久久综合久久久| 亚洲人成高清| 亚洲天堂视频在线观看| 激情小说另类小说亚洲欧美 | 免费观看成人www动漫视频| 亚洲精品久久久久久下一站| 亚洲国产精品一区二区第四页av | 亚洲欧美精品在线| 激情伊人五月天久久综合| 免费中文字幕日韩欧美| 欧美精品一区在线播放| 欧美一区二区三区免费看| 久久av一区二区| 99精品国产一区二区青青牛奶 | 女女同性女同一区二区三区91| 蜜臀91精品一区二区三区| 亚洲图片欧洲图片日韩av| 亚洲欧美综合网| 亚洲精品国产无天堂网2021| 亚洲一本大道在线| 在线欧美电影| 国产一区二区久久| 国产精品久久久久久亚洲调教| 午夜伦欧美伦电影理论片| 久久女同互慰一区二区三区| 在线中文字幕不卡| 欧美一区午夜视频在线观看| 日韩视频在线一区二区三区| 亚洲欧美日韩精品久久奇米色影视 | 国产一区二区三区免费观看| 亚洲人成小说网站色在线| 午夜欧美大尺度福利影院在线看| 欧美影片第一页| 亚洲午夜精品一区二区| 男人的天堂亚洲在线| 欧美在线视频一区| 欧美日韩亚洲三区| 欧美黄色aa电影| 国产原创一区二区| 亚洲欧美一级二级三级| 夜夜嗨一区二区| 免费在线成人av| 久久人人97超碰人人澡爱香蕉| 国产精品乱码| 99国内精品| 亚洲午夜精品一区二区| 欧美日韩国产成人精品| 亚洲第一在线综合在线| 影音先锋成人资源站| 午夜精品免费在线| 午夜精品久久久久久久| 欧美午夜精品久久久久久人妖 | 亚洲网址在线| 在线午夜精品自拍| 欧美日韩一二区| 欧美一区二区视频观看视频| 欧美日韩免费观看一区=区三区| 欧美福利视频在线观看| 狠狠色狠狠色综合日日五| 欧美一区1区三区3区公司| 亚洲性感激情| 国产精品成人在线观看| 9i看片成人免费高清| 一本大道av伊人久久综合| 欧美黄免费看| 99亚洲一区二区| 亚洲欧美日韩另类| 国产精品影院在线观看| 欧美一级午夜免费电影| 久久青青草综合| 91久久精品久久国产性色也91| 欧美成人高清| 日韩天堂av| 午夜在线视频观看日韩17c| 国产精品女人网站| 久久成人免费电影| 欧美大片第1页| 欧美激情网站在线观看| aaa亚洲精品一二三区| 亚洲欧美区自拍先锋| 国产日韩欧美综合| 另类人畜视频在线| 亚洲精品一级| 欧美影院视频| 欧美日韩在线不卡| 久久久久久久久一区二区| 国内精品视频在线播放| 久久精品一区二区国产| 欧美激情精品| 亚洲无线一线二线三线区别av| 国产精品theporn88| 亚洲男人影院| 亚洲夫妻自拍| 亚洲欧美伊人| 亚洲第一精品夜夜躁人人爽| 欧美视频官网| 久久国产精品99国产| 91久久久久| 性刺激综合网| 亚洲欧洲美洲综合色网| 国产精品稀缺呦系列在线| 久久婷婷麻豆| 亚洲美女诱惑| 亚洲第一精品夜夜躁人人爽| 午夜精品久久久久久久白皮肤| 精品99视频| 欧美日韩国产a| 久久人人精品| 午夜久久久久久久久久一区二区| 日韩午夜在线电影| 免费欧美高清视频| 午夜亚洲福利|