亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

二代身份證讀卡器接口函數Delphi聲明

2019-11-06 08:21:27
字體:
來源:轉載
供稿:網友

查看串口當前波特率function SDT_GetCOMBaud(iport: integer; puiBaudRate: Pinteger): integer;stdcall;External'SDTAPI.DLL';{iPort[in]表示端口,puiBaudRate[out]無符號指針,指向普通串口當前波特率,返回值0X90-成功,0x1-端口打開失敗/端口號不合法,0x5無法獲得SAM_V的波特率,串口不可用。}

設置SAM_V的串口的波特率function SDT_StetCOMBaud(iPort: integer; uiCurrBaud: integer; uiSetBaud: integer): integer;stdcall;External'SDTAPI.DLL';{iPort[in]表示端口, uiCurrBaud[in]調用改API前已設置的業務終端與SAM_V通信的波特率(出廠默認為115200)uiCurrBaud只能為115200,57600,378400,19200,9600。如果uiCurrBaud數值不是這些值之一,函數返回0x21,如果和已設置的不一樣,函數返回0x02表示不能設置調用API不成功。uiSetBaud[in]將要設置的SAM_V波特率,只能為(同上)那些值,如果不是這些數值,返回也同上函數返回0x90-成功,0x1-端口打開失敗/端口號不合法,0x2-超時,設置不成功,0x21-uiCurrBaud、uiSetBaud輸入參數數值錯誤}

打開串口/USBfunction SDT_OpenPort(iPort: integer): integer;stdcall;External'SDTAPI.DLL';{iPort[in]表示端口號,1-16(十進制)為串口,1001-1016(十進制)為USB口,缺省的一個USB設備端口是1001。函數返回0x90-打開端口成功,1-打開端口失敗/端口號不合法}

關閉串口/USBfunction SDT_ClosePort(iPort: integer): integer;stdcall;External'SDTAPI.DLL';{iPort[in]表示端口號,返回值0x90-關閉串口成功,0x01-端口號不合法}

對SAM_V復位function SDT_ResetSAM(iPort: integer; ilfOpen: integer): integer;stdcall;External'SDTAPI.DLL';{iPort[in]表示端口號,目前串口和USB只支持16個,串口:0001-0016,USB:1001-1016。ilfOpen[in]表示不在該函數內部打開和關閉串口,非0表示在API函數內部包含了打開串口和關閉串口函數,之前不需要調用SDT_OpenPort和SDT_ClosePort返回值0x90-成功,其他 失敗}

設置射頻適配器最大通信字節數function SDT_SetMaxRFByte(iPort: integer;ucByte: Char;blfOpen: integer):integer;stdcall;External'SDTAPI.DLL';{iPort[in]表示端口號,ucByte[in]無符號字符,24-255,表示射頻適配器最大通信字節數,ilfOpen[in]參見SDT_ResetSAM返回值0x90-成功,其他-失敗}

對SAM_V進行狀態檢測function SDT_GetSAMStatus(iPort: integer;ilfOpen: integer):integer;stdcall;External'SDTAPI.DLL';{iPort[in]表示端口號,ilfOpen參見SDT_ResetSAM返回值0x90-SAM_V正常,0x60-自檢失敗,不能接收命令,其他-命令失敗}

讀取SAM_V的編號function SDT_GetSAMID(iPort: integer;pusSAMID: Pbyte;ilfOpen: integer):integer;stdcall;External'SDTAPI.DLL';{iPort[in]表示端口號,pusSAMID[out]無符號字符串指針SAM_V編號,16字節,返回值0x90-成功,其他-失敗}

讀取SAM_V的編號function SDT_GetSAMIDToStr(iPort: integer;pcSAMID: Pbyte;ilfOpen: integer):integer;stdcall;External'SDTAPI.DLL';{iport[in]表示端口號,pusSAMID[out]SAM_V編號,ilfOpen[in]整數,參見SDT_ResetSAM返回值0x90-成功,其他-失敗}

開始找卡function SDT_StartFindIDCard(iPort: integer;pucManaInfo: Pbyte; ilfOpen: integer):integer;stdcall;External'SDTAPI.DLL';{iport[in]表示端口號,pucManaInfo[out]無符號指針,證/卡芯片管理號,4個字節,ilfOpen[in]參見SDT_ResetSAM返回值0x9f-找卡成功,0x80-找卡失敗}選卡function SDT_SelectIDCard(iPort: integer;pucManaMsg: Pbyte;ilfOpen: integer):integer;stdcall;External'SDTAPI.DLL';{iPort[in]表示端口號,pucManaMsg[out]無符號指針,證/卡芯片序列號,8個字節,ilfOpen[in]參見SDT_ResetSAM返回值0x90-選卡成功,0x81-選卡失敗}

讀取卡體管理號function SDT_ReadMngInfo(iPort: integer;pucManageMsg: Pbyte;ilfOpen: integer):integer;stdcall;External'SDTAPI.DLL';{iPort[in]表示端口號,pucManageMsg[out]無符號字符指針,卡體管理號,28字節,ilfOpen[in]返回值0x90-成功,其他-讀失敗}

讀取證/卡固定信息function SDT_ReadBaseMsg(iPort: integer;pucCHMsg: Pbyte;puiCHMsgLen: Pinteger;pucPHMsg: Pbyte;puiPHMsgLen: Pinteger;ilfOpen: integer):integer;stdcall;External'SDTAPI.DLL';{iPort[in]表示端口號,pucCHMsg[out]指向讀到的文字信息,puiCHMsgLen[out]指向讀到的文字信息長度pucPHMsg[out]指向讀到的照片信息,puiPHMsgLen[out]指向讀到的照片信息長度,ilfOpen[in]參見SDT_ResetSAM返回值0x90-讀固定信息成功,其他讀固定信息失敗}

讀取追加信息function SDT_ReadNewAppMsg(iPort: integer;pucAppMsg: Pbyte;puiAppMsgLen: Pinteger;ilfOpen: integer):integer;;stdcall;External'SDTAPI.DLL';{iPort[in]表示端口號,pucAppMsg[out]指向讀到的追加信息,puiAppMsgLen[out]指向讀到的追加信息長度,ilfOpen[in]參見SDT_ResetSAM返回值0x90-讀取追加信息成功,其他-讀取追加信息失敗}

照片解碼函數function GetBmp(Wlt_File: PChar,intf: integer):integer;stdcall;External'WltRS.dll';{Wlt_File-wlt文件名,intf閱讀設備通訊接口類型(1-RS-232C,2-USB)返回值:生成*.bmp和以下返回信息:1-相片解碼正確,0-調用sdtapi.dll錯誤,-1-相片解碼錯誤,-2-wlt文件后綴錯誤,-3-wlt文件打開錯誤,-4-wlt文件格式錯誤,-5-軟件未授權,-6-設備連接錯誤}

源代碼:

unit IdReader;interfaceusesSysUtils,Windows,Forms,uDatabase;constDLL_SDTAPI = 'sdtapi.dll';DLL_WLTRS = 'WltRS.dll';//提示信息TIP_TITLE = '提示';TIP_ICREADER_NO_CARD = '未放卡或者卡未放好,請重新放卡!';TIP_ICREADER_READ_FAILED = '讀卡失敗!';TIP_ICREADER_CALL_DLL_FAILED = '調用sdtapi.dll錯誤!';TIP_ICREADER_PICTURE_DECODE_FAILED = '相片解碼錯誤!';TIP_ICREADER_WLT_FILE_EXTEND_FAILED = 'wlt文件后綴錯誤!';TIP_ICREADER_WLT_FILE_OPEN_FAILED = 'wlt文件打開錯誤!';TIP_ICREADER_WLT_FILE_FORMAT_FAILED = 'wlt文件格式錯誤!';TIP_ICREADER_NO_LICENSE = '軟件未授權!';TIP_ICREADER_DEVICE_FAILED = '設備連接錯誤!';TIP_PRINT_NO_CARD_FOUND = '未找到身份證相關信息,請將證件放在天線上后重試!';TIP_ICREADER_SAVE_SUCCESS = '保存成功,身份信息已自動錄入本地數據庫!';TIP_ICREADER_BLACK_CARD_FOUND = '發現黑名單內包括的人員!';ERROR_ICREADER_OPEN_PORT = '端口打開失敗,請檢測相應的端口或者重新連接讀卡器!';typeTIdCardInfo = packed recordName: array[0..14] of WideChar;Sex : array[0..0] of WideChar;Nation: array[0..1] of WideChar;BirthDay:array[0..7] of WideChar;Addr : array[0..34] of WideChar;IdSN : array[0..17] of WideChar;IssueOrgan: array[0..14] of WideChar;VaildBegin: array[0..7] of WideChar;VaildEnd : array[0..7] of WideChar;theNewestAddr: array[0..34] of WideChar;end;function SDT_OpenPort(iPortID: Integer): Integer; stdcall; external DLL_SDTAPI name 'SDT_OpenPort';function SDT_ClosePort(iPortID: Integer): Integer; stdcall; external DLL_SDTAPI name 'SDT_ClosePort';function SDT_StartFindIDCard(iPortID: Integer; var pucIIN: Integer; iIfOpen: Integer): Integer; stdcall; external DLL_SDTAPI name 'SDT_StartFindIDCard';function SDT_SelectIDCard(iPortID: Integer; var pucIIN: Integer; iIfOpen: Integer): Integer; stdcall; external DLL_SDTAPI name 'SDT_SelectIDCard';function SDT_ReadBaseMsg(iPortID: Integer; pucCHMsg: PAnsiChar; var puiCHMsgLen: Integer; pucPHMsg: PAnsiChar; var puiPHMsgLen: Integer; iIfOpen: Integer): Integer; stdcall; external DLL_SDTAPI name 'SDT_ReadBaseMsg';function SDT_ReadBaseMsgToFile(iPortID: Integer; fileName1: PAnsiChar; var puiCHMsgLen: Integer; fileName2: PAnsiChar; var puiPHMsgLen: Integer; iIfOpen: Integer): Integer; stdcall; external DLL_SDTAPI name 'SDT_ReadBaseMsgToFile';function GetBmp(file_name: PAnsiChar; intf: Integer): Integer; stdcall; external DLL_WLTRS name 'GetBmp';function ReadICCard(var ACardInfo: TCardInfo; var AErrMsg: string): Boolean;implementationusesClasses, Dialogs, uResource;varLstEthnic: TStrings;function EthnicNoToName(ANo: string): string;beginResult:= LstEthnic.Values[ANo];end;function FormatDateStr(AValue: string): string;beginResult:= Copy(AValue, 1, 4) + '-' +Copy(AValue, 5, 2) + '-' +Copy(AValue, 7, 2);end;function ReadICCard(var ACardInfo: TIdCardInfo; var AErrMsg: string): Boolean;variPort: Integer;intOpenPortRtn: Integer;bUsbPort: Boolean;EdziPortID: Integer;iRet: Integer;pucIIN: Integer;EdziIfOpen: Integer;pucSN: Integer;puiCHMsgLen: Integer;puiPHMsgLen: Integer;fs: TFileStream;idCardInfo:TIdCardInfo;//FileHandle: Integer;beginAErrMsg:= '';//Result:= False;bUsbPort:= False;EdziIfOpen:= 1;EdziPortID:= 0;puiCHMsgLen:= 0;puiPHMsgLen:= 0;//檢測usb口的機具連接,必須先檢測usbfor iPort := 1001 to 1016 dobeginintOpenPortRtn:= SDT_OpenPort(iPort);if intOpenPortRtn = 144 thenbeginEdziPortID:= iPort;bUsbPort:= true;break;end;end;//檢測串口的機具連接if not bUsbPort thenbeginfor iPort := 1 to 2 dobeginintOpenPortRtn:= SDT_OpenPort(iPort);if intOpenPortRtn = 144 thenbeginEdziPortID:= iPort;bUsbPort:= False;Break;end;end;end;if intOpenPortRtn <> 144 thenbegin//application.MessageBox(ERROR_ICREADER_OPEN_PORT, ERROR_TITLE);AErrMsg:= ERROR_ICREADER_OPEN_PORT;Result:= False;Exit;end;//下面找卡iRet:= SDT_StartFindIDCard(EdziPortID, pucIIN, EdziIfOpen);if iRet <> 159 thenbeginiRet:= SDT_StartFindIDCard(EdziPortID, pucIIN, EdziIfOpen);//再找卡if iRet <> 159 thenbeginSDT_ClosePort(EdziPortID);//Application.MessageBox(TIP_ICREADER_NO_CARD, TIP_TITLE);AErrMsg:= TIP_ICREADER_NO_CARD;Result:= False;Exit;end;end;//選卡iRet:= SDT_SelectIDCard(EdziPortID, pucSN, EdziIfOpen);if iRet <> 144 thenbeginiRet:= SDT_SelectIDCard(EdziPortID, pucSN, EdziIfOpen);if iRet <> 144 thenbeginSDT_ClosePort(EdziPortID);//Application.MessageBox(TIP_ICREADER_READ_FAILED, TIP_TITLE);AErrMsg:= TIP_ICREADER_READ_FAILED;Result:= False;Exit;end;end;//注意,在這里,用戶必須有應用程序當前目錄的讀寫權限if FileExists('wz.txt') then SysUtils.DeleteFile('wz.txt');if FileExists('zp.bmp') then SysUtils.DeleteFile('zp.bmp');if FileExists('zp.wlt') then SysUtils.DeleteFile('zp.wlt');//PAnsiChar(AnsiString(Str))iRet:= SDT_ReadBaseMsgToFile(EdziPortID, PAnsiChar(AnsiString('wz.txt')), puiCHMsgLen, PAnsiChar(AnsiString('zp.wlt')), puiPHMsgLen, 1);if iRet <> 144 thenbeginSDT_ClosePort(EdziPortID);//Application.MessageBox(TIP_ICREADER_READ_FAILED, TIP_TITLE);AErrMsg:= TIP_ICREADER_READ_FAILED;Result:= False;Exit;end;//下面解析照片,注意,如果在C盤根目錄下沒有機具廠商的授權文件Termb.Lic,照片解析將會失敗if bUsbPort theniRet:= GetBmp(PAnsiChar(AnsiString('zp.wlt')), 2)elseiRet:= GetBmp(PAnsiChar(AnsiString('zp.wlt')), 1);case iRet of0:beginApplication.MessageBox(TIP_ICREADER_CALL_DLL_FAILED, TIP_TITLE);end;1: //正常beginend;-1:beginApplication.MessageBox(TIP_ICREADER_PICTURE_DECODE_FAILED, TIP_TITLE);end;-2:beginApplication.MessageBox(TIP_ICREADER_WLT_FILE_EXTEND_FAILED, TIP_TITLE);end;-3:beginApplication.MessageBox(TIP_ICREADER_WLT_FILE_OPEN_FAILED, TIP_TITLE);end;-4:beginApplication.MessageBox(TIP_ICREADER_WLT_FILE_FORMAT_FAILED, TIP_TITLE);end;-5:beginApplication.MessageBox(TIP_ICREADER_NO_LICENSE, TIP_TITLE);end;-6:beginApplication.MessageBox(TIP_ICREADER_DEVICE_FAILED, TIP_TITLE);end;end;SDT_ClosePort(EdziPortID);fs:= TFileStream.Create('wz.txt', fmOpenRead);fs.Position:= 0;fs.Read(ACardInfo ,SizeOf(ACardInfo));fs.Free;//// 姓名 :AnsiString(idCardInfo.Name);// 性別 : if AnsiString(idCardInfo.Sex)= '1' then 性別:= '男' else 性別:= '女';// 民族 : EthnicNoToName(AnsiString(idCardInfo.Nation));// 出生年月日: FormatDateStr(AnsiString(idCardInfo.BirthDay));// 住址: Address:= Trim(AnsiString(idCardInfo.Addr));//身份證號碼: Id:= Trim(AnsiString(idCardInfo.IdSN));//發證機構: Place:= Trim(AnsiString(idCardInfo.IssueOrgan));//有效日期開始 ValidDateStart:= FormatDateStr(AnsiString(idCardInfo.VaildBegin));//有效日期結束 if Trim(AnsiString(idCardInfo.VaildEnd)) = '長期' then// ValidDateEnd:= FormatDateTime('yyyy-MM-dd', MaxDateTime)// else// ValidDateEnd:= FormatDateStr(AnsiString(idCardInfo.VaildEnd));//Result:= True;end;initializationLstEthnic:= TStringList.Create;with LstEthnic dobeginAdd('01' + '=' + '漢族');Add('02' + '=' + '蒙古族');Add('03' + '=' + '回族');Add('04' + '=' + '藏族');Add('05' + '=' + '維吾爾族');Add('06' + '=' + '苗族');Add('07' + '=' + '彝族');Add('08' + '=' + '壯族');Add('09' + '=' + '布依族');Add('10' + '=' + '朝鮮族');Add('11' + '=' + '滿族');Add('12' + '=' + '侗族');Add('13' + '=' + '瑤族');Add('14' + '=' + '白族');Add('15' + '=' + '土家族');Add('16' + '=' + '哈尼族');Add('17' + '=' + '哈薩克族');Add('18' + '=' + '傣族');Add('19' + '=' + '黎族');Add('20' + '=' + '傈僳族');Add('21' + '=' + '佤族');Add('22' + '=' + '畬族');Add('23' + '=' + '高山族');Add('24' + '=' + '拉祜族');Add('25' + '=' + '水族');Add('26' + '=' + '東鄉族');Add('27' + '=' + '納西族');Add('28' + '=' + '景頗族');Add('29' + '=' + '柯爾克孜族');Add('30' + '=' + '土族');Add('31' + '=' + '達翰爾族');Add('32' + '=' + '仫佬族');Add('33' + '=' + '羌族');Add('34' + '=' + '布朗族');Add('35' + '=' + '撒拉族');Add('36' + '=' + '毛南族');Add('37' + '=' + '仡佬族');Add('38' + '=' + '錫伯族');Add('39' + '=' + '阿昌族');Add('40' + '=' + '普米族');Add('41' + '=' + '塔吉克族');Add('42' + '=' + '怒族');Add('43' + '=' + '烏孜別克族');Add('44' + '=' + '俄羅斯族');Add('45' + '=' + '鄂溫克族');Add('46' + '=' + '德昂族');Add('47' + '=' + '保安族');Add('48' + '=' + '裕固族');Add('49' + '=' + '京族');Add('50' + '=' + '塔塔爾族');Add('51' + '=' + '獨龍族');Add('52' + '=' + '鄂倫春族');Add('53' + '=' + '赫哲族');Add('54' + '=' + '門巴族');Add('55' + '=' + '珞巴族');Add('56' + '=' + '基諾族');Add('57' + '=' + '其它');Add('98' + '=' + '外國人入籍');end;finalizationLstEthnic.Free;end.//事先請準備好sdtapi.dll WltRS.dll WltRS.lic 這三個文件,放在同目錄下


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
性欧美暴力猛交69hd| 成人写真福利网| 精品欧美国产一区二区三区| 日韩精品极品毛片系列视频| 亚洲免费视频一区二区| 国产一区二区久久精品| 国产精品一区二区三区毛片淫片| 亚洲成人久久网| 欧美日韩国产限制| 国产精品wwwwww| 国产福利精品av综合导导航| 欧美xxxx做受欧美| 日韩精品中文字幕久久臀| 欧美大片免费观看| 久久精品视频中文字幕| 久久精品成人欧美大片| 国产999视频| 永久免费看mv网站入口亚洲| 91精品国产自产在线| 91美女福利视频高清| 51视频国产精品一区二区| 日韩在线资源网| 亚洲国产欧美精品| 91探花福利精品国产自产在线| 日韩中文字幕第一页| 91久久久在线| 成人在线观看视频网站| 国产视频久久久| 亚洲欧美国产精品久久久久久久| 中文字幕国产精品久久| 亚洲精品电影在线观看| 欧洲成人在线视频| 黄色一区二区在线| 国内精品模特av私拍在线观看| 欧美国产日韩xxxxx| 久久精品成人欧美大片古装| 日韩av免费在线观看| 国产日韩欧美在线视频观看| 亚洲人成网站777色婷婷| 日韩视频欧美视频| 美女精品久久久| 亚洲无亚洲人成网站77777| 日韩在线观看免费av| 九色精品免费永久在线| 国产精品狼人色视频一区| 成人黄色午夜影院| 色婷婷亚洲mv天堂mv在影片| 国产成人综合一区二区三区| 亚洲欧美激情另类校园| 欧美亚洲成人xxx| 欧美国产精品va在线观看| 丝袜亚洲另类欧美重口| 精品国产网站地址| 亚洲色无码播放| 亚洲奶大毛多的老太婆| 日韩在线视频导航| 6080yy精品一区二区三区| 欧美精品在线免费播放| 一本一本久久a久久精品综合小说| 午夜美女久久久久爽久久| 三级精品视频久久久久| 久久精品人人爽| 日韩精品久久久久久久玫瑰园| 欧美色欧美亚洲高清在线视频| 最新国产成人av网站网址麻豆| 国产日本欧美一区| 国产精品偷伦视频免费观看国产| 国产aⅴ夜夜欢一区二区三区| 亚洲最新在线视频| 精品无人区乱码1区2区3区在线| 亚洲va久久久噜噜噜久久天堂| 国产精品久久久久av免费| 成人免费看吃奶视频网站| 一区二区三区无码高清视频| 亚洲情综合五月天| 日本一区二三区好的精华液| 欧美另类老肥妇| 久久亚洲国产精品| 欧美人在线视频| 91超碰中文字幕久久精品| 免费91麻豆精品国产自产在线观看| 亚洲天堂网在线观看| 久久九九有精品国产23| 欧美色xxxx| 亚洲色图第一页| 精品少妇v888av| 亚洲精品视频免费| 日韩欧美精品免费在线| 亚洲国产日韩欧美在线图片| 国产人妖伪娘一区91| 色综合久久中文字幕综合网小说| 欧美激情精品久久久久久黑人| 国产国产精品人在线视| 亚洲www在线| 亚洲福利视频二区| 日韩精品视频免费| 久久久亚洲国产天美传媒修理工| 亚洲97在线观看| 欧美性猛交xxxx乱大交| 欧美一乱一性一交一视频| 亚洲曰本av电影| 麻豆乱码国产一区二区三区| 日韩精品免费综合视频在线播放| 亚洲免费影视第一页| 萌白酱国产一区二区| 亚洲欧美日韩中文在线制服| 亚洲欧美在线一区二区| 精品人伦一区二区三区蜜桃网站| 丝袜美腿亚洲一区二区| 久久男人的天堂| 欧美国产日本在线| 亚洲精品天天看| 久久99久久亚洲国产| 一区二区在线免费视频| 亚洲视频在线免费看| 久久视频这里只有精品| 亚洲影视九九影院在线观看| 国产有码在线一区二区视频| 中文字幕欧美日韩| 精品久久久一区| 在线电影av不卡网址| 日韩在线视频中文字幕| 日韩中文字幕在线| 国产精品自产拍高潮在线观看| 国产精品视频播放| 51久久精品夜色国产麻豆| 日韩精品在线免费观看| 俺去了亚洲欧美日韩| 777精品视频| 2019中文字幕在线| 国产精品美女久久久久av超清| 中文字幕精品一区二区精品| 国产精品一区专区欧美日韩| 成人免费网视频| 亚洲一区www| 97av在线视频免费播放| 国产成人免费av| 日韩在线观看你懂的| 91在线免费视频| 国产精品草莓在线免费观看| 中文字幕精品一区二区精品| 亚洲аv电影天堂网| 欧美日韩国产区| 欧美猛少妇色xxxxx| 欧美色另类天堂2015| 中文亚洲视频在线| 精品国产一区二区三区久久| 欧美精品电影免费在线观看| 欧美巨大黑人极品精男| 黑人巨大精品欧美一区二区三区| 国产婷婷97碰碰久久人人蜜臀| 久久久久久久91| 69**夜色精品国产69乱| 国产91露脸中文字幕在线| 欧美视频免费在线观看| 国产亚洲人成网站在线观看| 欧美午夜www高清视频| 欧美日韩第一页| 亚洲人成网站免费播放| 欧美日韩国产一区二区| 最新69国产成人精品视频免费| 人人澡人人澡人人看欧美| 久久天堂av综合合色| 亚洲人成毛片在线播放|