老司机夜插-理伦理片-理伦片免费-理伦片免费观看-理伦片免费看-理伦日韩-理论福利片-理论片第一页-理论片电影-理论片理论

金喜正规买球

JDK日志框架的擴展

轉帖|其它|編輯:郝浩|2009-01-12 13:16:53.000|閱讀 969 次

概述:日志記錄對于軟件的維護特別是對于已部署到運行環境之后的軟件調試都有著重要的意義。本文介紹了 JDK 的日志框架,以及如何根據不同需求自定義日志處理、消息格式化、消息級別等組件。最后闡述了如何利用 JDK 日志框架的擴展能力將 Java 程序能夠通過 STAF(Software Testing Automation Framework,一種自動化測試框架)日志服務來進行監視。

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

文章關鍵字:|JDK|日志|框架|Java|JDK|XML|HTML|測試|

  自 Java 1.4 開始,JDK 包括了一個嶄新的日志框架包 java.util.logging,該日志框架設計精良,和 JDK 緊密結合,控制靈活,使用簡單。日志記錄對于軟件的維護特別是對于已部署到運行環境之后的軟件調試都有著重要的意義。在實際的項目中,往往還需要比該框架所提供的更為復雜的日志功能。對于這種需求,JDK 日志框架具有足夠的可擴展能力,可以自定義不同需求的日志處理、消息格式化、日志消息級別等組件。在下面的內容中,本文將介紹了如何擴展 JDK 日志框架,自定義日志處理方式。并就一個實際的例子來介紹如何結合 JDK 日志框架和 STAF(Software Testing Automation Framework,一種自動化測試框架)日志服務來對 Java 程序進行監視。

  JDK 日志框架介紹

  JDK 的日志框架即 java.util.logging 包。對于一個軟件的日志系統而言,首先必須得有一個日志對象,該對象負責記錄日志信息。同時該信息可以輸出到不同的位置,例如控制臺,文件甚至網絡中。對于信息的格式,則可以根據不同的需求,可以輸出成普通文本,XML 或者 HTML 的格式。同時還需要對日志信息進行不同級別的分類,這樣的好處是可以過濾冗余信息,只保留關鍵的日志。對于一個日志框架而言,日志對象必須是可配置的,它可以按照配置來輸出到指定的目標,同時按照配置來決定輸出的格式和決定何種級別以上的日志才能輸出。配置的形式還可以是多種多樣的,既能是代碼的形式,也能是配置文件的形式。尤其是配置文件的形式,對于一個已經部署到運行環境中的軟件而言,可以非常方便的改變日志配置而無需改變其源代碼。

  JDK 日志框架提供了上述的所有功能。它主要包括如下幾個部件:

  • Logger:日志記錄對象。用于記錄日志信息。
  • Handler:用于處理日志信息的輸出。在 Handler 類中,可以決定日志是輸出到文件中還是控制臺中。
  • Filter: 用于過濾日志。在 Filter 類中,可以根據日志級別或者某種條件來決定是否輸出該日志。這樣達到去除冗余信息的目的。
  • Formatter:用于格式化日志信息。該類可以將日志文本格式化成 XML 或者 HTML 的格式,這完全依賴于具體的實現。
  • Level:用于表示日志的級別。 JDK 日志框架默認有如下級別 : SEVERE,WARNING,INFO,CONFIG,FINE,FINER,FINEST 。

  對于程序而言,它的 Logger 對象首先會判斷日志的級別是否滿足輸出級別的要求,然后將滿足級別要求的日志消息交給所配置的 Handler 對象來處理,如果日志對象配置了一個 Filter 對象,那么 Filter 對象將會對日志信息做一次過濾。 Handler 對象接受到日志消息后,根據其所配置的格式化類 Formatter 來改變日志的格式,根據所配置的 Filter 對象和 Level 對象來再次過濾日志信息,最后輸出到該種 Handler 對象所指定的輸出位置中,該輸出位置可以是控制臺,文件,網絡 socket 甚至是內存緩沖區。其架構模型如圖 1 所示。

圖 1 JDK 日志框架
點擊查看大圖

  JDK 提供了如下幾種默認支持的 Handler 類:

  • ConsoleHandler: 輸出日志到控制臺中
  • FileHandler:輸出日志到指定文件中
  • MemoryHandler:輸出日志到內存緩沖區中,當一定的條件滿足的時候(如某種關鍵字的日志信息)再將緩沖區中的日志輸出
  • SocketHandler: 輸出日志到網絡 socket 中
  • StreamHandler: 輸出日志到輸入輸出流對象中

  同時 JDK 日志框架也不失其靈活性,你可以定制自己所需要的 Handler,將日志按照自定義的需求輸出到不同的位置,同時 Formatter,Level 類都可以自定義擴展,下面就詳細敘述如何自定義擴展這些組件。

  自定義日志 Handler

  所有的 Handler 類都是繼承自 java.util.logging.Handler 抽象類,該類結構圖如 圖 2 所示。

圖 2 Handler 類圖
點擊查看大圖

  由該類圖可見,Handler 抽象類提供了抽象接口:publish, flush 和 close 。這些接口提供了日志輸出的基本功能。同時 Handler 類保存了 Formatter,Filter 和 Level 對象用來控制日志輸出。因此,編寫自定義的 Handler 類需要如下步驟:

  • 繼承 Handler 抽象類
  • 實現 publish,flush 和 close 方法。其中 publish 方法是用于發布一條日志記錄。 flush 方法是清空內存緩沖區。 close 方法是當應用程序關閉的時候,釋放該 Handler 類所申請的資源(如文件,socket 等)
  • 設置默認的 Formatter,Filter 和 Level 對象。必要的時候,可以在類的初始化時候讀取配置文件來設置這些參數。

[SPAN]  一個典型的自定義 Handler 類實現如清單 1 所示。

清單 1 自定義 Handler 類

public class MyHandler extends Handler {
   private boolean doneHeader = false;
   	 public MyHandler() {
   		 setLevel(Level.INFO);
   		 setFilter(null);
   		 setFormatter(new SimpleFormatter());
   	 }
     	 _cnnew1@Override
   	 public void close() throws SecurityException {
   	 if (!doneHeader) {
   		 output(getFormatter().getHead(this));
   		 doneHeader = true;
   	 }
   	 output(getFormatter().getTail(this));
   	 flush();
   	 }
     	 @Override
   	 public void flush() {
   		 // 清空緩沖區
  	 }
     	 @Override
   	 public void publish(LogRecord record) {
   		 if (!isLoggable(record)) {
   			 return;
   		 }
   		 String msg = getFormatter().format(record);
     		 try {
   			 if (!doneHeader ) {
   				 output(getFormatter().getHead(this));
   				 doneHeader = true;
   			 }
   			 output(msg);
   		 } catch (Exception ex) {
   			 reportError(null, ex, ErrorManager.WRITE_FAILURE);
   		 }
   	 }
     	 private void output(String message) {
   		 // 實現日志輸出
  	 }    }

  這里 reportError 方法是將日志類中的錯誤信息輸出到外界,這個是由 ErrorManager 類實現的,ErrorManager 類負責記錄日志框架中 Handler 的錯誤,一般情況下是將該錯誤打印到控制臺中。具體的每條日志消息被 JDK 日志框架封裝成 LogRecord 對象,該類部分定義如 清單 2所示。

清單 2 LogRecord 類定義

public class LogRecord implements java.io.Serializable {
   	 public String getLoggerName();
   	 public void setLoggerName(String name);
   	 public ResourceBundle getResourceBundle();
   	 public void setResourceBundle(ResourceBundle bundle);
   	 public Level getLevel();
   	 public void setLevel(Level level);
   	 public String getMessage();
   	 public void setMessage(String message);
   	 public Object[] getParameters();
   	 public void setParameters(Object parameters[]);
   	 public int getThreadID();
   	 public void setThreadID(int threadID);
   	 public long getMillis();
   	 public void setMillis(long millis);
   	 public Throwable getThrown();
   	 public void setThrown(Throwable thrown);
   	 ...    }

  由清單 2 可見,LogRecord 類包含了一個日志消息的級別、消息文本、時間、參數、線程等等所有的信息,這些都交給 Handler,Formatter 和 Filter 這些對象來處理。同時該類也是可序列化的,可以序列化到網絡和文件中。該類還可以和一個 ResourceBundle 對象綁定,實現消息字符串的本地化處理。

  本節描述了一個典型的自定義的 Handler 類的實現。在本文后面部分將會有一個實際的例子來介紹如何實現一個 STAF 日志處理類。[SPAN]

  自定義日志 Formatter

  日志可以被格式化為一定格式的文本,也可以成為 XML 或者 HTML 這樣標準的格式。這取決于 Formatter 類的具體實現。 Formatter 抽象類提供了 format 成員函數用于擴展。一個典型的自定義 Formatter 類實現如清單 3 所示:

清單 3 LogRecord 類定義

public class MyFormatter extends Formatter {
   	 private final String lineSeparator =
System.getProperty("line.separator"); @Override public String format(LogRecord record) { StringBuffer sb = new StringBuffer(); String message = formatMessage(record); sb.append(record.getLevel().getLocalizedName()); sb.append(message); sb.append(lineSeparator); if (record.getThrown() != null) { try { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); record.getThrown().printStackTrace(pw); pw.close(); sb.append(sw.toString()); } catch (Exception ex) { } } return sb.toString(); } }

  其中 formatMessage 方法提供了默認的將日志記錄本地化和格式化的方法。它還能支持 java.text 風格的文本格式化,這只需要在調用 Logger 對象的 setMessage 方法設定 java.text 風格的格式字符串,同時通過 setParameters 方法設置參數,這樣 formatMessage 將會根據所設置的 java.text 風格的格式字符串來格式化日志消息。總之,formatMessage 方法方便了子類格式化字符串。使子類只需要定義輸出文本的格式而無需考慮本地化等問題。

  自定義日志消息級別

  JDK 日志框架默認提供了 SEVERE,WARNING,INFO,CONFIG,FINE,FINER,FINEST 這幾種日志級別。如果我們需要定義更多的日志級別,只需要繼承 java.util.logging.Level 類,然后將自定義的級別作為靜態成員變量聲明即可。一個典型的自定義的消息類如清單 4 所示。

清單 4 自定義 Level 類

public class MyLevel extends Level {
     	 protected MyLevel(String name, int value) {
   		 super(name, value);
   	 }
     	 public static final Level Level1 = new MyLevel("Level1", 123);
   	 ... // 其他自定義級別
   }

  權重值 value 是一個整型數。在默認的 JDK 日志級別中,SEVERE 的權重是 1000,FINEST 是 300,可以根據具體的需求來定義每個自定義級別的權重。例如在 WARNING 和 INFO 級別中加入一個新的級別,該級別的權重必須介于 800 到 900 之間。[SPAN]

  自由的日志配置

  和其他日志框架一樣,JDK 日志框架同樣提供了強大的日志配置功能。你既可以通過代碼進行動態配置,也可以通過配置文件來實現自由靈活的配置。通過代碼動態配置,應用程序可以實現在運行過程中改變日志類的配置,動態地改變不同的配置組合。一個簡單的動態配置代碼如清單 5 所示。

清單 5 動態配置 Logger 對象

public static void main(String[] args){
   	 Handler fh = new FileHandler("%t/wombat.log");
   	 Logger.getLogger("logname").addHandler(fh); 
  	 Logger.getLogger("com.wombat").setLevel("com.wombat",Level.FINEST);
   	 ...
    }

  配置文件的配置方法則同樣靈活多變。它主要是在應用程序啟動時根據一個指定的配置文件來設置日志對象。在配置文件中,日志對象是由其名稱來標識的。一個典型的日志配置文件如清單 6 所示。

清單 6 JDK Logger 配置文件

# 設置日志對象的 Handler,日志對象的名稱是com.xyz.foo
    com.xyz.foo.handlers= java.util.logging.FileHandler,
java.util.logging.ConsoleHandler # 設置日志對象的基本輸出級別 com.xyz.foo.level = INFO #FileHandler 只允許輸出 SEVERE 以上級別的日志 java.util.logging.ConsoleHandler.level = SEVERE #ConsoleHandler 允許輸出 INFO 以上級別的日志 java.util.logging.ConsoleHandler.level = INFO

  當設置好一個日志配置文件后,在 java 程序的啟動參數中,我們可以通過添加 -Djava.util.logging.config.file 參數來定義配置文件路徑,一個典型的 java 命令行如下:

java -Djava.util.logging.config.file=logger.properties -cp . Mainclass

  我們也可以在應用程序中聲明自定義的 Handler,Formatter,Level 等組件,這只需要這些自定義組件能夠在 classpath 中找到即可。

  實例——結合 STAF 日志服務

  STAF(Software Testing Automation Framework)是一個自動化軟件測試框架,它可以實現分布式的自動化軟件測試管理。我們可以應用 STAF 庫的 Java API 來做基于 STAF 框架的應用,同時 STAF 同時也提供了日志服務。其日志服務是用來記錄自動化測試流程中的信息,方便在 24x7 的自動化測試中記錄自動化測試的操作,便于發現潛在的自動化測試管理腳本的問題。
  既然我們可以用 STAF 的 Java API 來做基于 STAF 的應用,我們也可以將 JDK 的日志框架同 STAF 的日志服務接口結合起來。 STAF 的日志服務的 Java 接口定義如清單 7 所示:

清單 7 STAFLog 類定義

public class STAFLog
    {
       public STAFLog(String logType, String logName, STAFHandle handle);
       public STAFResult log(int level, String msg)
       // Log type constants
       public static STAFResult log(STAFHandle theHandle, String logType,
          String logName, int level, String msg)
       public String getName();
       public String getLogType();
       public int getMonitorMask();
       ... //other methods
    }

  從清單 7 我們可以看出,STAFLog 類提供了方法可以將日志信息存儲到 STAF 的日志庫中, 這個日志庫既可以是本地的文件,也可以是另一個 STAF 服務器上的日志庫。這是通過本地 STAF 服務器的配置來決定的。而 STAFLog.log() 方法只用于記錄日志信息。[SPAN]

  將 STAF 日志服務的 Java API 同 JDK 日志框架結合起來需要做如下步驟:

  創建 STAF 日志 Handler 類

  該類封裝了 STAF 日志服務 API 的接口。同時 STAF 的 Java API 需要一個全局的 STAFHandle 對象,用來表示本地的 STAF 服務句柄。這個可以通過建立一個靜態的 STAFHandle 對象即可。其代碼如下所示,我們定義了一個 STAFHandler 類如清單 8 所示。

清單 8 STAFHandler 類實現

import java.util.logging.*;
    import com.ibm.staf.wrapper.STAFLog;
      public class STAFHandler extends Handler {
   	 private String logName;
   	 private static STAFHandle stafHandle = null;
   	 public STAFHandler(String name) {
   		 configure(); 
  		 logName = name;
   	 }
   	 public STAFHandler() {
   		 configure();
   	 }
     	 @Override 
  	 public void close() throws SecurityException { 
  		 if (stafHandle != null){
   			 try {
   				 stafHandle.unRegister();
   			 } catch (STAFException e) { 
  				 //ignore 
  			 }
   		 }
   	 }
     	 @Override
   	 public void flush() {
   		 //nothing
   	 }
     	 @Override
   	 public void publish(LogRecord record) {
   		 if (!isLoggable(record)) {
   			 return; 
  		 } 
  		 String msg; 
  		 try {
   			 msg = getFormatter().format(record);
} catch (Exception ex) { reportError(null, ex, ErrorManager.FORMAT_FAILURE); return; } try { STAFLog.log(stafHandle, STAFLog.MACHINE,
logName, record.getLevel().getName(), msg); } catch (Exception ex) { reportError(null, ex, ErrorManager.WRITE_FAILURE); } ...

  在實現 STAFHandler 類時有以下幾個要點:

  1. 由于 STAF API 的調用時需要一個 STAFHandle 的對象來代表本地的 STAF 服務,在該類中聲明了一個全局變量用來存儲 STAFHandle 。
  2. close 方法是用來清理系統資源的,上述代碼的 close 方法中釋放了全局變量 STAFHandle 對象。
  3. publish 方法就是獲得格式化后的消息后,直接調用 STAF 的日志 API 將日志發送到 STAF 服務中。

  但到目前為止,我們還沒有給 STAFHandler 類添加一個配置的代碼,使之可以支持配置文件。下面我們定義了一個函數 configure,其代碼如清單 9 所示。

清單 9 配置函數實現

private void configure() {
          if (stafHandle == null) {
              try {
                  stafHandle = new STAFHandle("my application");
              } catch (STAFException e) {
                  reportError("registe staf handle error",
e, ErrorManager.OPEN_FAILURE); } } LogManager manager = LogManager.getLogManager(); String cname = getClass().getName(); //set staf log name logName = manager.getProperty(cname + ".name"); if (logName == null) logName = "demo.staflog"; //set formatter String sformatter = manager.getProperty(cname + ".formatter"); Formatter formatter = null; if (sformatter != null) { try { formatter = (Formatter)Class.forName(sformatter).newInstance(); } catch (Exception e) { //ignore } } setFormatter(formatter == null? new STAFFormatter() : formatter); //set level String sLevel = manager.getProperty(cname + ".level"); Level level = null; if (sLevel != null) { try { level = STAFLevel.parse(sLevel); } catch (Exception e) { //ignore } } setLevel(level == null? STAFLevel.DEBUG : level); }

  在實現配置文件支持的代碼中,有以下幾個要點:

  1. STAF API 的初始化需要注冊 STAFHandle 對象。而且該注冊只能執行一次。我們根據全局變量 stafHandle 的值來決定是否注冊該對象。
  2. JDK 的日志框架有一個全局的 singleton 管理類 STAFManager,該類用于管理日志類,并提供了讀取日志配置文件的成員函數 getProperty 。在上述的代碼中,我們通過 STAFManager.getProperty 方法,從日志配置文件中讀取 STAFHandler 對象所設置的 Formatter 類名,然后通過反射生成一個新的 Formatter 對象,設置到 Handler 對象中。
  3. 對于日志級別也是通過 STAFManager.getProperty 方法。需要注意的是由于我們的日志級別是自定義的級別,所以 Level 對象是由我們自定義的 Level 類 STAFLevel 來生成的。
  4. 我們也能定義自己需要的屬性。比如清單 9 中我們定義了一個 .name 屬性,用來存儲 STAF 日志名稱,通過 getProperty 函數從配置文件中讀取 .name 屬性。 [SPAN]

  創建一個適合 STAF 日志的 Formatter 類

  由于 STAF 日志服務無需特殊的格式,我們只需要定義一個普通文本格式的 Formatter 即可。其代碼如清單 10 所示,注意這里考慮了如果記錄了一個異常對象的情況,將異常對象的 stack 打印到字符串中添加到消息文本中。

清單 10. STAFFormatter 實現

import java.io.*;
  import java.util.logging.*;
  public class STAFFormatter extends Formatter {
      private final String lineSeparator = System.getProperty("line.separator");
      @Override
      public String format(LogRecord record) {
          StringBuffer sb = new StringBuffer();
          String message = formatMessage(record);
          sb.append(message);
          sb.append(lineSeparator);
          if (record.getThrown() != null) {
              try {
              StringWriter sw = new StringWriter();
              PrintWriter pw = new PrintWriter(sw); 
              record.getThrown().printStackTrace(pw);
              pw.close(); 
              sb.append(sw.toString()); 
             } catch (Exception ex) {
              }
          }
          return sb.toString();
      }
  }

  創建對應于 STAF 日志級別的 Level 對象

  這是由于 STAFLog 有著不同的日志消息級別,它包括 Fatal, Error, Warning, Info, Tracer, Debug 等級別,有些是 JDK 日志框架已有的級別,有些則不是。我們需要增加新的 Level 對象來滿足 STAFLog 的需求。一個新的 Level 類:STAFLevel 定義如清單 11 所示。

清單 11 自定義 STAFLevel

import java.util.logging.Level;
      public class STAFLevel extends Level {
     	 protected STAFLevel(String name, int value) {
   		 super(name, value);
   	 }
     	 protected STAFLevel(String name, int value, String resourceBundleName) {

   		 super(name, value, resourceBundleName);
   	 }
     	 public static final Level FATAL = new STAFLevel("FATAL",980);
   	 public static final Level ERROR = new STAFLevel("ERROR",980);
   	 public static final Level TRACE = new STAFLevel("TRACE", 790);
   	 public static final Level DEBUG = new STAFLevel("DEBUG", 690);
    }

  清單 11 定義了 FATAL,ERROR,TRACE 和 DEBUG 級別。這就和 STAFLog 中的部分級別一一對應起來了。

  將一切組合起

  清單 12 描述了如何在一段實際的代碼中將 STAF 日志處理類和 JDK 日志類結合起來。 從清單 12 可以看出,該實例默認指定輸出到 STAF 日志服務的日志名稱為“ staflogger ”。然后通過動態配置的方法來設定 Handler,Level 和 Formatter 。最后在調用 JDK 的日志對象的 log 方法記錄了 4 種自定義級別的日志。

清單 12 一個完整的例子

package demo.staflog;
      import java.util.logging.Logger;
      public class STAFLoggerTest {
   	 public static void main(String[] args) { 
  		 Logger logger = Logger.getLogger(STAFLoggerTest.class.getName()); 
  		 logger.setUseParentHandlers(false);
   		 logger.setLevel(STAFLevel.DEBUG);
   		 STAFHandler stafHandler = new STAFHandler("staflogger");
   		 stafHandler.setLevel(STAFLevel.DEBUG); 
  		 stafHandler.setFormatter(new STAFFormatter());
   		 logger.addHandler(stafHandler);
   		 //log
   		 logger.log(STAFLevel.DEBUG, "debug log"); 
  		 logger.log(STAFLevel.FATAL, "fatal log"); 
  		 logger.log(STAFLevel.ERROR, "error log"); 
  		 logger.log(STAFLevel.TRACE, "trace log");   	 }
    }

但我們也可以將這些代碼改為配置文件的方式,其配置文件如清單 13 所示:

清單 13 STAFLog 類定義

# 設置日志對象的 Handler
    demo.staflog.STAFLoggerTest.handlers= demo.staflog.STAFHandler
    demo.staflog.STAFLoggerTest.level = DEBUG
      # 取消發送日志到父 Logger 對象
   demo.staflog.STAFLoggerTest.useParentHandlers = FALSE
      # 設置 Handler 的名稱,輸出級別和格式化對象
   demo.staflog.STAFHandler.name= staflogger
    demo.staflog.STAFHandler.level = DEBUG
    demo.staflog.STAFHandler.formatter = demo.staflog.STAFFormatter

這樣代碼可以簡化為清單 14 。

清單 14 STAFLog 類定義

public class STAFLoggerTest {
    private static Level defaultLevel = STAFLevel.DEBUG;
   	 public static void main(String[] args) {
   		 //log
   		 logger.log(STAFLevel.DEBUG, "debug log");
   		 logger.log(STAFLevel.FATAL, "fatal log");
logger.log(STAFLevel.ERROR, "error log"); logger.log(STAFLevel.TRACE, "trace log");
} }

  配置文件的方式相對于動態配置的方式更加靈活,因為這無需改變和重新編譯代碼,只需要修改配置文件,就能修改日志中 Handler,Level 和 Formatter 的組合配置,這對于已經部署發布的軟件而言,有著更為實際的意義。
  當運行代碼后,在命令行中輸入 STAF 命令來顯示 STAF 日志 staflogger:

mymachine:~ myname$ staf local log query machine mymachine
 logname staflogger
    Response    --------
    Date-Time
         Level Message
      ----------------- ----- ----------
    20081111-16:15:21 Debug debug log
    20081111-16:15:21 Fatal fatal log
    20081111-16:15:21 Error error log
    20081111-16:15:21 Trace trace log

  這顯示了我們剛才在 Java 代碼中記錄的信息,它們已經被輸出到 STAF 的日志服務中了。

  結束語

  JDK 日志框架簡單靈活,它雖然比 log4j 出現的時期晚,但其功能并不比 log4j 少。而且 JDK 日志框架直接隸屬于 JDK,被 Java 標準所支持而無需安裝第三方庫文件。本文介紹了 JDK 日志框架的結構,如何擴展 JDK 日志框架使之滿足實際的項目需求。并以如何在 Java 程序中將日志輸出到 STAF 的日志服務中為例,一步步描述了如何實現擴展 JDK 日志組件,使之和 STAF 日志服務結合到一起,同時如何創建靈活的配置文件來組合日志框架組件。希望本文可以給其他需要擴展 JDK 日志組件的開發者提供幫助。


標簽:

本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn

文章轉載自:IBM

為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
中国xxxxwwww泡妞的软件 | 色少妇视频一区二区 | 国产成人精品日本亚洲18图 | 桃子视频直播高清在线 | 免费无码国产欧美久久18 | 99久久香蕉国产综合影院 | 国产色情一区二区不卡毛片 | 久久精品视频免费看 | 一个人看的在线www高清视频 | 天堂精品视频 | 亚洲欧美精品一区天堂久久 | 中文字幕 日本 | 国产黄A片三級三級三級 | 苍井空a v免费视频 苍井空a 集在线观看网站 | 2024美女视频黄频大全视频 | 亚洲欧美精品一中文字幕 | 黄页在线播放网址 | 久久免费看少妇高潮A片特无毒 | 亚洲天堂视频在线免费观看 | 人妻久久久精品99系列A片毛 | 中文字幕日本无码电影 | 亚洲国产精品久久久久久网站 | 国产美女人人人妻 | 内射毛片内射国产夫妻 | 亚洲中文字幕国产综合 | 色网免费 | 亚洲高清视频一区 | 欧美另类在线视频 | 久久精品国产清自在天天线 | 亚洲色欲成人无码网站在线观看 | 最近最新中文字幕高清免费 | 精品亚洲永久免费精品 | 国产免费久久精品久久久 | 美女国产毛片A区内射 | 天天天| 99国产在线视频有精品视频 | 伊人在综合 | 婷婷我也去俺也去狠狠爱 | 免费高清在线观看a网站 | 日本欧美一区二区三区片 | 自拍电影 | 亚洲成成品源码中国有限公司 | 91视频一区二区 | 欧美bbbbbxxxxx| 在教室伦流澡到高潮H强圩动漫 | 亚洲AVAV天堂AV在线网爱情 | 91精品国产亚一区二区三区 | 日本一卡二卡3卡四卡无卡国色天香网入义站 | 精品剧情v国产在线麻豆 | 影视AV久久久噜噜噜噜噜三级 | 在教室伦流澡到高潮H吃奶小黄书 | 亚洲尤码不卡AV麻豆 | 精品人妻人人爽久久爽AV | 国产中文字幕视频 | 日韩精品综合 | 国产精品夜夜春夜夜爽久久小 | 色播在线永久免费视频网站 | 国产精品一区二区三区免费 | 中文字幕亚洲男人的天堂网络 | 上课时男同桌狂揉我下面污文 | 亚洲午夜无码毛片AV久久久久久 | 少妇高潮潮喷到猛进猛出小说 | 中文字幕按摩做爰 | 真人做A免费观看 | 精品夜夜澡人妻无码AV | 日本a级片免费 | 中文字幕日本六区小电影 | 色综合精品久久久久久久 | 日本午夜成年在线网站 | 人人网站 | 小明永久成人一区二区 | 久久久久久久综合狠狠综合 | 国产真实野战在线视频 | AV亚洲AV永久无码精品网 | 色吊丝永久性观看网站 | 草 榴 2020最新地址T66Y | 伊人婷婷六月狠狠狠去 | 好色女成人网 | 欧美另类性视频在线看 | 国产毛片久久精品 | 里番本子侵犯肉全彩A片视频一区 | 色人| 二级片名 | 老师你夹得好紧好爽动态图 | 趴在办公室被老板们C | 肉肉描写很细致的黄文 | 日韩香蕉网 | 日本午夜免费福利视频 | 全肉整夜不拔男男车文 | 一道精品视频一区二区三区男同 | 国产又色又爽又高潮免费视频麻豆 | 国产00高中生在线无套进入 | 97久久精品无码一区二区欧美人 | 国产成人无码视频一区二区三区 | 欧美色88 | 欧美成在线观看 | 天天噜天天干 | 日韩精品中文字幕一区二区三区 | 被黑人20厘米强交 | 亚洲欧洲国产精品久久 | 日本韩国免费视频在线 | 影音先锋资av男人撸 | 黄网在线观看免费 | 宝贝乖女好紧好深好爽老师 | 真实乱L仑口述全过程 | 不卡国产在线 | 97精品久久久久中文字幕 | 在线亚洲精品国产一区麻豆 | 三级黃色男人的天堂 | 小黄鸭app下载安装无限看丝瓜安卓苏州 | 国产精品一区二区三区高清在线 | 六月丁香六月综合缴情 | 91视频青青 | 国产激情无码激情A片免费软件 | 久久爱国产视频在线 | 脱了在阳台趴着去H | 国精产品自偷自偷综合下载 | 99亚洲精品卡2卡三卡4卡2卡 | 日本免费无码A专区在线观看 | 六月丁香综合在线视频 | 韩国乱理片中文字幕在线播放 | 欧美 亚洲 另类 综合网 | 亚洲精品国产综合99久久一区 | 久久日本片精品AAAAA国产 | 丁香花视频资源在线观看 | 欧美xxxx在线 | 久久大香伊蕉在人线国产昨爱 | 影音先锋影av色资源网 | 婷婷色国产 | 欧美性色黄大片四虎影视 | 国产手机在线自在拍 | 久久93精品国产91久久综合 | 成年美女黄网站色大免费视频 | 国偷自产一区二视频观看 | 国产激情一级毛片久久久 | 婷婷四月开心色房播播 | 国产人妻人伦精品潘金莲 | 国产福利影视 | 成人影院永久免费观看网址 | 亚洲欧美国产双大乳头 | 99久久久精品免费观看国产 | 日本不卡在线一区二区三区视频 | 香蕉99| 久久99久久99精品观看 | 国产亚洲色婷婷久久精品99 | 伊人影院亚洲 | qovd伦理电影 | 99色在线| 成人免费又大又爽A片视频 成人女人A级毛片免费软件 | 日韩卡二卡三卡四卡永久入口 | 成年在线人免费视频视频 | 中文人妻AV久久人妻水 | 精品国产一区二区三区不卡 | 日本在线日本中文字幕日本在线视频播放 | 免费观看全黄做爰 | 亚洲欧美日韩中文综合v日本 | 一区二区三区日韩免费播放 | 久久久精品免费视频 | 亚洲 欧美 国产 综合免费 | 99久久精品国产一区二区三区 | 影音先锋资源av天堂 | 99久久免费看少妇高潮A片特黄 | 97亚洲狠狠色综合久久久久 | 国产精品高潮AV久久无码 | 西西人体全身祼体图片 | 免费毛片网 | 亚洲精品无码一区二区三区网雨 | 国产女人水真多18毛片18精品 | 色综合久久久久久久久久久 | 深爱激情五月婷婷 | 三A级做爰片免费观看国产电影 | 久99热| 影音先锋av色咪影院 | 亚洲乱码国产一区三区 | a√视频| 波多野结衣下载 | 欧美日韩国产亚洲一区二区三区 | 一级一级一级毛片 | 国产在线观看www | 九九这里只精品视在线99 | 日本成人一区二区三区 | 欧美伊久线香蕉线新在线 | 性按摩视频xxx| 女主播直播大尺度视频获刑 | 下身被黑人猛然进入 | 亚洲 中文 女同 | 污污的小说网站免费阅读 | 人人爱看电影网 | 欧产日产国产色情 | 天天透天天插 | 午夜免费观看视频 | 亚洲一级免费毛片 | 精品国产中文字幕 | 2021国产成人综合亚洲精品 | 日本视频在线免费观看 | 麻豆国产精品 | 免费无码又爽又刺激网站直播 | 疯狂揉小泬到失禁高潮在线 | 免费看国产曰批40分钟 | 国精一二二产品无人区免费应用 | 亚洲精品欧美 | 久久精品国产99久久 | 最新国产麻豆精品 | 性夜影院午夜看片 | 中文乱码字幕视频观看网站免费 | 另类重口100页在线播放 | 成人小视频在线观看 | 五月激情综合婷婷 | 四虎影视成人永久免费观看视频 | 中文字字幕在线乱码 | 久久久久久久综合狠狠综合 | 亚洲精品一区二区三区婷婷月色 | 宅男噜噜噜66一区二区 | swag精品 | 天天操夜夜嗨 | 亚洲午夜久久久 | 久久88台湾三级香港三级 | 男人桶爽女人30分钟软件免费 | 成人另类视频 | 日韩高清影片免费播放 | 成人a图 | 免费精品美女久久久久久久久久 | 欧美激情啪啪 | 好男人免费影院www神马 | www欧美| 99无码熟妇丰满人妻啪啪 | 爱综合网 | 亚洲精品乱码久久久久久日本麻豆 | 色女人天堂| 性老少xxxhd 性久久久久久久久久 | 最近免费中文字幕大全高清10 | 亚洲卡一卡二卡三乱码公司 | 九九久久精品国产免费看小说 | 成人久久久 | 东京热主页 | 日本公妇里乱片A片免费 | 快点好深好爽受不了了 | 亚洲乱码国产一区三区 | 亚洲 综合 校园 欧美 制服 | 日本无吗不卡高清免V | 91孕妇精品一区二区三区 | 精品国产乱码久久久久久下载 | 一个人看的视频WWW高清免费 | 她也色在线视频站 | 无遮挡18禁羞羞视频免费动漫 | 精品国产乱码久久久久久夜深人妻 | 丰满人妻无码AV一区二区免费 | 日韩性做爰免费A片AA片 | 欧美另类重口 | 国产伦精品一区二区免费 | 一起看电影 | 日本中文字幕不卡 | 两根一起用力挺进宫交 | se成人国产精品 | 向井杏| 六月婷婷激情综合 | 一区二区三区A片无码视频不卡 | 国精产品W灬源码1688网站 | 成人综合色站 | 大地影院日本高清免费完整版 | 毛片在线看片 | 强姧美女动态图片大全 | 国产一区二区三区四区五在线观看 | 九热视频 | 欧美黄色xxx | 好看的电影网 | 色一情一乱一伦一区二区三区 | 国产中文在线观看 | 国产真人做爰免费视频 | 欧美人成片免费看视频不卡 | 久久综合香蕉久久久久久久 | 日本免费久久久久久久网站 | 成人免费午夜在线观看 | 黄页网站视频在线观看 | 一区二区人妻无码欧美 | 日本午夜影院 | 3D肉蒲团之极乐宝鉴8K影院 | 国产成人久久久精品毛片 | 啊灬啊灬高潮来了视频直播A片 | 日本中文字幕高清 | 99视频免费在线 | 日本在线视频免费观看 | 天天干天天综合 | 啪啪日韩 | 亚洲精品久久久久久久久久久 | 无限免费动漫看片的视频 | 狠狠色丁香婷婷久久综合考虑 | 四虎影视www在线播放 | 三男一女伦奷A片 | 四虎最新版本2024在线网址 | 韩国高清大片免费观看在线第9集 | 91免费观看在线网址 | 麻豆精品人妻一区二区三区蜜桃 | 日本jizz18| 丰满人妻无码AV一区二区免费 | h片免费观看 | 国产免费一级片 | 久久草免费线看线看2 | 亚洲色妞 | 又黄又欲又肉的小说 | 美景之屋4在线 | 欧洲性xxxx | 三级国产三级在线 | 97精品一区二区三区在线不卡 | 日韩首页 | 亚洲一卡2卡3卡4卡5卡乱码 | 成人做爰WWW免费看视频韩国 | 第四色在线 | 综合玖玖 | 日本少妇做爰大尺裸体 | 黄色片免费网站 | 色妞ww精品视频7777 | 久久国产精品一国产精品金尊 | 国产真实夫妇4P交换A片 | 久久久免费看少妇高潮A片特黄 | 久久日产一线二线真人 | 成人网站国产在线视频内射视频 | 极品夜夜嗨久久精品17c | 久久人妻无码毛片A片麻豆 久久人人玩人妻潮喷内射人人 | 麻豆精品人妻一区二区三区蜜桃 | 永久免费看A片在线直播 | 日本啊啊啊视频 | 午夜DJ国产精华日本无码 | A片试看120分钟做受视频在线 | 亚洲一级毛片视频 | 久青草国产手机视频免费观看 | 一级欧美一级日韩 | 欧美成人A片免费无码毛片 欧美成人大色情大片破碎的拥抱 | 日产电影一区二区三区 | 97无码人妻精品1国产精东影业 | 亚欧有色在线观看免费版高清 | 在线免费黄色 | 欧美黑人一区二区三区免费A片 | 亚洲精品一区二区午夜无码 | 色之综合| 精品免费国产一区二区三区四区 | 国产一级一级一级成人毛片 | 免费黄色三级 | 国内精品久久久久久久小说 | 黄色成人在线视频 | 亚州春色 | 久久精品麻豆日日躁夜夜躁妓女 | 亚洲国产精品日本无码网站 | 99精品久久久久久国产人妻 | 精品国产乱码久久久久夜深人妻 | 99久久精品费精品国产一区二 | 久久只有这精品99 | 国产熟妇精品一区二区 | 精品国产乱码久久久软件下载 | 无码精品人妻一区二区三区颖A片 | 色哟哟免费视频播放网站 | 国产69精品久久久久人妻 | 国产一区亚洲二区三区毛片 | 国内精品久久久久久网站 | 国精产品一二三区传媒公司 | 欧美精品成人一区二区在线观看 | 把她日出水来太爽太紧了 | 亚洲色欧美图另类综合 | 又黄又爽内射视频巨乳 | 爱的色放mp4下载 | 亚洲欧洲精品成人久久曰 | 国产极品尤物铁牛tv网站 | 男人用嘴添女人私密视A片 男人站影音先锋男人站 | 国产在线视视频有精品 | 免费黄色三级网站 | 全H全肉禁乱NP | 日本黄在线 | 三级黄色片免费看 | 风韵丰满熟妇啪啪区老老熟女百度 | tube jizz| 女人被老外躁得好爽 | 中文日产无乱码AV在线观 | 特级毛片免费观看视频 | 人妻少妇看A偷人无码电影 人妻少妇偷人无码精品AV | 免费国产一级特黄aa大 | 一级毛片完整版免费播放一区 | 激情综合五月天丁香婷婷 | 毛茸茸xxx娇小 | 国产一区二区三区四区精华 | 337日本 | 欧美性生交A片免费看 | 成人国产精品免费视频 | 日日摸夜夜添夜夜添亚洲女人 | 久久久九九精品国产毛片A片 | 男人天堂2019| 国产在线观看99 | 99久久久无码国产精品AAA | 亚洲字幕| 狠狠色噜噜狠狠狠狠 | 美女被C污黄网站免费观看 美女被抽插舔B到哭内射视频免费 | 99视频精品在线 | 欧美乱妇乱码大黄AA片 | 久久国产乱子伦精品免费M 久久国产伦子伦精品 | 中国一级全黄的免费观看 | 亚洲AV无码久久流水呻蜜桃久色 | 波多野结衣 一区二区 | 日本A级做爰午夜免费视频 日本A片成人片免费视频生活片 | 国产91精品高清一区二区三区 | 国产少又黄又爽的A片 | 日本午夜大片 | 国产精品夜夜春夜夜爽久久小 | 亏亏插曲叫疼的免费的视频 | 中文天堂最新版在线网 | 国内久久久久影院精品 | 色秀视频免费网站在线观看 | 果冻传媒网站免费入口破解版 | 午夜网站在线观看 | 在线视频日韩精品 | 欧洲每年百万吨电子垃圾流向亚非 | 日韩一卡2卡3卡4卡新区亚洲 | 国产精品扒开腿做爽爽青涩情侣 | 国产美女黄性色A片 | 日本精品人妻无码77777 | 国产精品AV色欲蜜臀在线 | 日韩h片| 最近最新中文字幕大全免费版下载 | 亚洲mv日韩mv欧美mv | 嗯啊跳蛋啊别舔了啊 | 放荡乱h伦文粗大hhh高潮 | 婷婷色香五月激情综合2020 | 免费精品国偷自产在线读大二 | 精品人妻无码一区二区三区绿 | 国产色婷婷免费视频 | 中国一级毛片在线观看 | 色琪琪女色窝202477 | 在线看片中文字幕 | 欧美18videosex性欧美乱任 | 亚洲精品久久AV无码一区二 | 人人爱看电影网 | 中文字幕乱偷无码AV蜜桃 | 精品国产90后在线观看 | 深爱激情五月网 | 国产精品久久人妻无码电影张丽 | 亚洲精品色情婷婷在线播放 | 国产精品熟女人妻 | 草草视频在线观看最新 | 九九热热九九 | 亚洲国产日韩欧美一区二区三区 | 麻豆国产人妻精品无码AV | 亚洲成成品网站源码中国有限 | 久久三级网站 | 日韩毛片高清免费 | 回铭之烽火三月动漫免费播放 | 抱着娇妻让朋友一起弄 | 99这里只有是精品2 9I看片成人免费 | 久久三级影院 | 99国产亚洲精品久久久久久 | bt天堂网www bt天堂网.www在线资源 | 亚洲成色A片202477在线小说 | 五月丁香啪啪丁香花 | 亚洲欧洲中文日韩久久AV乱码 | 秋霞黄色 | 少妇高潮毛片免费看A片 | 久久久99精品久久久久久 | 色丁香婷婷综合缴情综 | 国产精品一区二区三区四区五区 | 久久久这里只有精品免费 | 亚洲国产天堂 | 国产乱子伦精品无码码专区 | 99美国热 | 欧美日韩精品高清一区二区 | 亚洲国产成人久久精品图片 | 又黄又爽吃奶视频在线观看 | 老司机精品在线 | 国产玩弄放荡人妇系列 | 青青青国产在线观看手机免费 | 欧美色道 | 人人草97| 99日韩精品 | 舐美女足vk | 亚洲精品卡一卡三卡四卡乱码 | 婷婷综合久久狠狠色成人网 | 污污内射久久一区二区欧美日韩 | 亚洲一区二区三区视频 | 攻把受做得合不拢腿play | 8848hh四虎免费| 天天影视色香欲综合网 | 欧美日韩一 | 成人午夜亚洲影视在线观看 | 成年在线观看网站免费 | 欧美三级在线电影免费 | 日本特爽特黄特刺激大片 | 人人爱夜夜爽日日做视频 | 一个人在线观看的免费视频www | 国产精品久久久久三级 | 久久久久久毛片免费观看 | 情网站色 | 快穿之浪荡H啪肉NP文肉BL | 五月丁香综合啪啪成人小说 | 99视频99| 国产乱码卡一卡2卡三卡四 国产乱码一卡二卡3卡4卡网站 | 免费二区 | 国产乱码卡一卡2卡三卡四 国产乱码一卡二卡3卡4卡网站 | 麻花传媒mv在线播放高清MBA | 18禁欧美猛交XXXXX无码 | va天堂va亚洲va影视中文字幕 | 在线不卡免费视频 | 色哟哟在线观看免费高清大 | 纯肉巨黄H爆粗口男男分卷阅读 | 成人乱码一区二区三区AV66 | 亚洲免费色| 古代高H啪肉NP文 | 国产成人福利免费观看 | 色天天网 | 色五夜| 国产日b| 校园激情人妻古典武侠 | 少妇人妻丰满做爰XXX | 久久久999久久久精品 | 婷婷六月天激情 | 韩国理伦片在线观看影片 | 91精品乱码一区二区三区 | 快播av种子 | 无人区乱码区1卡2卡三卡在线 | 精品久久久久久久99热 | 99爱视频免费高清在线观看 | 无码激情做A爰片毛片A片小说 | 97av在线视频 | 在线日本高清日本免费 | 色图片大全123 | 国产亚洲精品久久久久久国 | 把腿张开老子臊烂你小说完整版 | 日本高清一卡二卡三卡四卡无卡 | 五月婷婷六月丁香综合 | 黑人强伦姧人妻日韩那庞大的 | 四川老熟妇乱子XX性BBW | 张柏芝2008久久久久国产 | 老司机福利深夜亚洲入口 | 2020亚洲 欧美 国产 日韩 | 雾岛奈津美ed2k | 9亚洲精华国产精华精华液 av大片 | 公交车上荫蒂添的好舒服口述小说 | www亚洲精品| A片扒开双腿猛进入免费观看 | 老师洗澡让我吃她胸的视频 | 日本大胆无码免费视频 | 狠狠躁日日躁夜夜躁A片55动漫 | 日韩精品在线观看视频 | 九九re| 久久久国产精品免费A片蜜臀 | 国产三级观看久久 | 久久精品麻豆日日躁夜夜躁妓女 | 久在线| 成年女人毛片免费播放视频m | 日本无码色哟哟婷婷最新网站 | 国产精品久久久久久久久免费观看 | 日本三级香港三级韩国三级 | 18禁裸乳无遮挡免费网站 | 欧美一区二区三区播放 | 欧美午夜一区 | 边啃奶头边躁狠狠躁AV | 国农村精品国产自线拍 | 精品国产免费久久久久久 | 99久久国产露脸人妻精品 | 久久中文字幕人妻AV熟女 | 撸撸在线影院 | 亚洲天堂男人影院 | 久久99久久成人免费播放 | 99精品视频在线观看re | 亚洲AV国产国产久青草 | 免费看真人a一级毛片 | 九九精品在线视频 | 波多野结衣在线播放 | 国产精品久久人妻无码网站一区无 | 欧美黑人猛性暴交 | 成人综合网址 | 韩国色情高潮做大尺度电在线观看 | 国产精品视频九九九 | 国产精品第一区在线观看 | 久久久久久国产a免费观看黄色大片 | 国产人妻久久精品二区三区特 | 国内精品久久久久久久999下 | 日韩毛片高清免费 | 最近中文字幕2019免费BD | 不卡一卡二卡三亚洲 | 最新国产成人盗摄精品视频 | 欧美高清在线视频一区二区 | 日日影院 | 三级视频网站 | XL上司带翻译带中文 | 久久久国产精品免费看 | 狠狠撸电影院 | 欧美日韩精品一区二区 | 超91在线 | 午夜生活片 | 玖玖玖免费观看视频 | 欧美色妞网| а8天堂资源在线官网 | 欧美三级A做爰在线观看 | 蝌蚪蚪窝视频在线视频手机 | 在线视频这里只有精品 | 久青草国产在视频在线观看 | 久久精品国产免费高清 | 日产乱码卡一卡2卡三卡四麻豆 | 日本一本久| 国产成人综合亚洲动漫在线 | 最近手机中文字幕大全首页 | 最近中文字幕高清中文字幕无 | 全黄a免费一级毛片人人爱 全古装一级毛片大全 | 伊人婷婷涩六月丁香七月 | 天天久久综合网站 | 欧美性A片又大又长 | 狠狠综合欧美综合欧美色 | 中文中文在线 | 九九在线中文字幕无码 | 人人牛牛 | 久久国产精品高清一区二区三区 | 麻豆TV入口在线看 | 激情一区二区三区成人 | 日韩人妻无码精品-专区 | 久久特级毛片 | 99久久中文字幕伊人 | 中文字幕日本六区小电影 | 成人A片动漫无码免费播放 成人A片免费看男人社区 | 日本高清视频免费在线观看 | 99re 视频| 无限观看韩国动漫免费观看大全 | 日韩一级欧美一级 | 老司机欧美 | 国产亚洲精品久久AV | 中文无码人妻在线一区不卡 | caoporm免费视频公开 | 99精品免费久久久久久久久蜜桃 | 国产精品免费一区二区三区四区 | 久久综合丁香 | 国内精品伊人久久久久 | 亚洲欧美一区二区久久 | 以你的名字呼唤我 | 成人网在线播放 | 久久片 | 欧美激情16p| a级v片| 最近新中文字幕大全高清 | 亚洲性无码A片在线观看尖叫 | 91福利国产在线观看一区二区 | 精品午夜寂寞影院在线观看 | 国产高潮A片羞羞视频涩涩 国产高潮抽搐在线观看 | 韩国一级黄色毛片 | 日日噜噜夜夜狠狠视频无 | 网友自拍视频悠悠在线 | 天天爱天天操 | 四虎最新版本2024在线网址 | ds精品| 亚洲激情一区 | 日本不卡va | 日韩免费一区 | 婷婷基地网 | 欧美国产精品久久久乱码 | 国产精品久久久久久久 | 蜜臀亚洲AV永久无码精品老司机 | 人妻无码AV一区二区三区 | 亚洲清纯自偷自拍另类专区 | 中国chinese国产高清 | 亚洲第一色网 | 好紧再快点好深好爽视频 | 亚洲欧美人成无码苍井空 | 少妇人妻偷人精品无码视频新浪 | 亚洲性av免费 | 大尺度做爰啪啪床戏男人小说 | 亚洲性无码A片在线观看尖叫 | AV无码国产精品午夜A片 | 第一福利在线观看 | 精品亚洲国产成人A片在线播放 | 亚洲免费网站观看视频 | 国产ts人妖视频 | 97福利视频精品第一导航 | 一个人看的免费观看日本电影 | 色爱区综合激月婷婷激情五月 | 国产精品日日做人人爱 | 久久精品国产精品亚洲艾 | 久久91精品国产91久久跳舞 | 人人澡人人透人人爽 | 天堂 亚洲 av 日韩 | 黄色网zhan| 国产这里有精品 | 校园舂色另类小说经典色 | 成人做爰WWW | 中文字字幕在线中文乱码 | 五月开心六月伊人色婷婷 | 亚洲国产天堂在线观看 | 啪啪五月 | 蝌蚪在线播放视频 | 夜色网 | 一级黄毛片| 蜜臀91精品国产免费观看 | 日本在线视频www鲁啊鲁 | 中文字幕精品久久久久人妻红杏1 | 91欧美精品综合在线观看 | 日本三级韩国三级香港三级 | 校园黄乱色伦短篇小说 | 亚洲综合社区 | 亚洲欧美二区三区久本道 | 国产自产自拍 | 五月综合视频 | 云边有个小卖部高清 | 欧美成人家庭影院 | 丁香五月久久婷婷久久 | 国产又爽又大又黄A片软件 国产又爽又大又黄A片图片 | 久激情内射婷内射蜜桃人妖 | 日本无码专区亚洲麻豆 | 99国产精品人妻无码网站 | 欧美又粗又大AAA片 欧美又粗又大XXXX无码 | 最近最新中文字幕免费大全 | 午夜福利影院私人爽爽 | 涩涩看片 | 97在线中文字幕观看视频 | 成人性生交大片免费看中国A片 | 小小水蜜桃视频高清在线观看1 | 亚洲国产精品久久精品成人网站 | 国产三级精品三级 | 国产精选 第1页-要看tv | 亚洲综合激情六月婷婷在线观看 | 亚洲精品入口一区二区乱麻豆精品 | 欧美日韩福利视频一区二区三区 | 国产精品久久久久久永久牛牛 | 精品麻豆一区二区三区乱码 | 久久99精品久久久久久噜噜噜 | 日本成人在线免费 | 日韩精品在线观看免费 | 粗大的内捧猛烈进出A片 | 无人高清视频免费观看在线下载 | www.日| 真实国产乱子伦露脸 | 精品一区二区三区无码AV久久 | 少妇伦子伦精品无吗 | 国产精品三级视频 | 日本一卡二卡三卡四卡试看 | 欧美成人一级 | 污视频app网址丝瓜视频 | 色网站大全 | 激情小说在线观看 | 长篇yin荡乱合集小说免费阅读 | 国产精品VIDEOSSEX久久发布 | 日本一道一区二区视频 | 国产精品久久午夜夜伦鲁鲁 | 免费看v片 | 国产日产国无高清码2020 | 在线看免费观看AV深夜影院 | 漂亮的丰年轻的继坶3在线观看 | 国产精品99久久免费黑人人妻 | 国产ZLJZLJZLJZLJ18公司 | 欧洲裸妇图片大全 | 国产精品久久久久久吹潮 | 77788色婬在线视频 | 精品成人无码A片免费软件 精品AV综合一区二区三区 | 亚洲性之站 | 国产精品久久久久久久久久直 | 精品久久一区二区三区 | 亚洲欧洲免费三级网站 | 久久免费福利 | 成人网站色情WWW免费 | 欧美丝袜办公室系列 | 婷婷综合视频 | bl文库肉yin荡受 | 免费中文字幕不卡视频 | 亚洲精品久久无码一区二区大长腿 | 秋霞在线骑兵区 | 欧美黄www免费| 波多野结衣中文丝袜字幕 | 免费在线观看黄网站 | 爱兽交| 一级特黄性色生活片一区二区 | 日本精品久久久久久久久免费 | 丁香五月天综合缴情网 | 日韩精品高清自在线 | 国产精品白浆一区二小说 | 久久91精品国产91久久户 | a级毛片免费网站 | 2024人禽伦交 | 91精品福利一区二区三区野战 | 一个人看的www播放高清 | 久99久精品免费视频热77 | 亚洲男人片片在线观看 | 色综合成人丁香 | 青丝影院免费看 | 韩国无删减 | 精品一卡2卡三卡4卡三卡免费 | 97人伦色伦成人免费视频 | 欧美性喷潮 | 九九视频免费精品视频免费 | 极品美女久久久久久久久久久 | 疯狂揉小泬到失禁高潮在线 | 彩途| 最近最新的日本免费 | 无码成人性爽XO视频在线观看 | 老师你下面太紧进不去小黄文 | 日韩精品视频在线观看免费 | 狠狠色丁香婷婷 | 欧美无人区码卡二三卡四卡 | 精品亚洲日韩国产一二三区 | 国产成人精品免费久久久久 | 国产乱子经典视频在线观看 | 色偷偷亚洲女人天堂观看欧 | 欧美69视频 | 欧美肥婆videos另类 | 天天色天天干天天 | 国产手机在线观看精品视频 | 在线精品国产三级 | 中文字幕精品久久久久人妻红杏1 |