亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? iphelper.pas

?? < Delphi網絡通信協議分析與應用實現>>一書的源代碼。
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
    end;
    //取得列表
    GetMem( pBuf, TableSize );
    ErrorCode := GetIpNetTable( PTMIBIPNetTable( pBuf ), @TableSize, false );
    if ErrorCode = NO_ERROR then
    begin
        NumEntries := PTMIBIPNetTable( pBuf )^.dwNumEntries;
        if NumEntries > 0 then
        begin
            inc( pBuf, SizeOf( DWORD ) );
            for i := 1 to NumEntries do
            begin
                IPNetRow := PTMIBIPNetRow( PBuf )^;
                with IPNetRow do
                List.Add( Format( '%8x | %12s | %16s| %10s',
                    [dwIndex, MacAddr2Str( bPhysAddr, dwPhysAddrLen ),
                    IPAddr2Str( dwAddr ), ARPEntryType[dwType]]));
                inc( pBuf, SizeOf( IPNetRow ) );
            end;
        end
        else
            List.Add( ' ARP-cache empty.' );
    end
    else
        List.Add( SysErrorMessage( ErrorCode ) );
    dec( pBuf, SizeOf( DWORD ) + NumEntries * SizeOf( IPNetRow ) );
    FreeMem( pBuf );
end;


//------------------------------------------------------------------------------
procedure Get_TCPTable( List: TStrings );
var
  TCPRow        : TMIBTCPRow;
  i,
    NumEntries  : integer;
  TableSize     : DWORD;
  ErrorCode     : DWORD;
  DestIP        : string;
  pBuf          : PChar;
begin
  if not Assigned( List ) then EXIT;
  List.Clear;
  RecentIPs.Clear;
  // first call : get size of table
  TableSize := 0;
  ErrorCode := GetTCPTable( PTMIBTCPTable( pBuf ), @TableSize, false );
  if Errorcode <> ERROR_INSUFFICIENT_BUFFER then
    EXIT;

  // get required size of memory, call again
  GetMem( pBuf, TableSize );
  // get table
  ErrorCode := GetTCPTable( PTMIBTCPTable( pBuf ), @TableSize, false );
  if ErrorCode = NO_ERROR then
  begin

    NumEntries := PTMIBTCPTable( pBuf )^.dwNumEntries;
    if NumEntries > 0 then
    begin
      inc( pBuf, SizeOf( DWORD ) ); // get past table size
      for i := 1 to NumEntries do
      begin
        TCPRow := PTMIBTCPRow( pBuf )^; // get next record
        with TCPRow do
        begin
          if dwRemoteAddr = 0 then
            dwRemotePort := 0;
          DestIP := IPAddr2Str( dwRemoteAddr );
          List.Add(
            Format( '%15s : %-7s|%15s : %-7s| %-16s',
            [IpAddr2Str( dwLocalAddr ),
            Port2Svc( Port2Wrd( dwLocalPort ) ),
              DestIP,
              Port2Svc( Port2Wrd( dwRemotePort ) ),
              TCPConnState[dwState]
              ] ) );
         //
            if (not ( dwRemoteAddr = 0 ))
            and ( RecentIps.IndexOf(DestIP) = -1 ) then
               RecentIPs.Add( DestIP );
        end;
        inc( pBuf, SizeOf( TMIBTCPRow ) );
      end;
    end;
  end
  else
    List.Add( SyserrorMessage( ErrorCode ) );
  dec( pBuf, SizeOf( DWORD ) + NumEntries * SizeOf( TMibTCPRow ) );
  FreeMem( pBuf );
end;

//TCP數據流量統計
procedure Get_TCPStatistics( List: TStrings );
var
    TCPStats      : TMibTCPStats;
    ErrorCode     : DWORD;
begin
    if not Assigned( List ) then EXIT;
    List.Clear;
    ErrorCode := GetTCPStatistics( @TCPStats );
    if ErrorCode = NO_ERROR then
    with TCPStats do
    begin
        List.Add( 'Retransmission algorithm :' + TCPToAlgo[dwRTOAlgorithm] );
        List.Add( 'Minimum Time-Out         :' + IntToStr( dwRTOMin ) + ' ms' );
        List.Add( 'Maximum Time-Out         :' + IntToStr( dwRTOMax ) + ' ms' );
        List.Add( 'Maximum Pend.Connections :' + IntToStr( dwRTOAlgorithm ) );
        List.Add( 'Active Opens             :' + IntToStr( dwActiveOpens ) );
        List.Add( 'Passive Opens            :' + IntToStr( dwPassiveOpens ) );
        List.Add( 'Failed Open Attempts     :' + IntToStr( dwAttemptFails ) );
        List.Add( 'Established conn. Reset  :' + IntToStr( dwEstabResets ) );
        List.Add( 'Current Established Conn.:' + IntToStr( dwCurrEstab ) );
        List.Add( 'Segments Received        :' + IntToStr( dwInSegs ) );
        List.Add( 'Segments Sent            :' + IntToStr( dwOutSegs ) );
        List.Add( 'Segments Retransmitted   :' + IntToStr( dwReTransSegs ) );
        List.Add( 'Incoming Errors          :' + IntToStr( dwInErrs ) );
        List.Add( 'Outgoing Resets          :' + IntToStr( dwOutRsts ) );
        List.Add( 'Cumulative Connections   :' + IntToStr( dwNumConns ) );
    end
    else
        List.Add( SyserrorMessage( ErrorCode ) );
end;

//取得UDP連接的列表
procedure Get_UDPTable( List: TStrings );
var
    UDPRow        : TMIBUDPRow;
    i,NumEntries  : integer;
    TableSize     : DWORD;
    ErrorCode     : DWORD;
    pBuf          : PChar;
begin
    if not Assigned( List ) then EXIT;
    List.Clear;

    //取得列表所需的內存大小
    TableSize := 0;
    ErrorCode := GetUDPTable( PTMIBUDPTable( pBuf ), @TableSize, false );
    if Errorcode <> ERROR_INSUFFICIENT_BUFFER then
        EXIT;

    //分配內存
    GetMem( pBuf, TableSize );

    //取得列表
    ErrorCode := GetUDPTable( PTMIBUDPTable( pBuf ), @TableSize, false );
    if ErrorCode = NO_ERROR then
    begin
        NumEntries := PTMIBUDPTable( pBuf )^.dwNumEntries;
        if NumEntries > 0 then
        begin
            inc( pBuf, SizeOf( DWORD ) );
            for i := 1 to NumEntries do
            begin
                UDPRow := PTMIBUDPRow( pBuf )^; //下一個記錄
                with UDPRow do
                List.Add( Format( '%15s : %-6s',
                [IpAddr2Str( dwLocalAddr ),
                Port2Svc( Port2Wrd( dwLocalPort ) )] ) );
                inc( pBuf, SizeOf( TMIBUDPRow ) );
            end;
        end
        else
            List.Add( 'no entries.' );
        end
    else
        List.Add( SyserrorMessage( ErrorCode ) );
    dec( pBuf, SizeOf( DWORD ) + NumEntries * SizeOf( TMibUDPRow ) );
    FreeMem( pBuf );
end;

//獲得IP地址及其配置信息
procedure Get_IPAddrTable( List: TStrings );
var
    IPAddrRow     : TMibIPAddrRow;
    TableSize     : DWORD;
    ErrorCode     : DWORD;
    i             : integer;
    pBuf          : PChar;
    NumEntries    : DWORD;
begin
    if not Assigned( List ) then EXIT;
    List.Clear;
    TableSize := 0; ;
    //取得列表所需內存大小
    ErrorCode := GetIpAddrTable( PTMibIPAddrTable( pBuf ), @TableSize, true );
    if Errorcode <> ERROR_INSUFFICIENT_BUFFER then
        EXIT;

    GetMem( pBuf, TableSize );
    //獲得列表
    ErrorCode := GetIpAddrTable( PTMibIPAddrTable( pBuf ), @TableSize, true );
    if ErrorCode = NO_ERROR then
    begin
        NumEntries := PTMibIPAddrTable( pBuf )^.dwNumEntries;
        if NumEntries > 0 then
        begin
        inc( pBuf, SizeOf( DWORD ) );
        for i := 1 to NumEntries do
        begin
            IPAddrRow := PTMIBIPAddrRow( pBuf )^;
            with IPAddrRow do
            List.Add( Format( '%8.8x|%15s|%15s|%15s|%8.8d',
                [dwIndex,IPAddr2Str( dwAddr ),IPAddr2Str( dwMask ),
              IPAddr2Str( dwBCastAddr ),dwReasmSize] ) );
            inc( pBuf, SizeOf( TMIBIPAddrRow ) );
        end;
        end
        else
            List.Add( 'no entries.' );
    end
    else
        List.Add( SysErrorMessage( ErrorCode ) );
    dec( pBuf, SizeOf( DWORD ) + NumEntries * SizeOf( IPAddrRow ) );
    FreeMem( pBuf );
end;

//-----------------------------------------------------------------------------
{ gets entries in routing table; equivalent to "Route Print" }
procedure Get_IPForwardTable( List: TStrings );
var
    IPForwRow     : TMibIPForwardRow;
    TableSize     : DWORD;
    ErrorCode     : DWORD;
    i             : integer;
    pBuf          : PChar;
    NumEntries    : DWORD;
begin
    if not Assigned( List ) then EXIT;
    List.Clear;
    TableSize := 0;
    //獲得列表所需的內存大小
    ErrorCode := GetIpForwardTable( PTMibIPForwardTable( pBuf ),
    @TableSize, true);
    if Errorcode <> ERROR_INSUFFICIENT_BUFFER then
        EXIT;
    //獲取列表
    GetMem( pBuf, TableSize );
    ErrorCode := GetIpForwardTable( PTMibIPForwardTable( pBuf ),
    @TableSize, true);
    if ErrorCode = NO_ERROR then
    begin
        NumEntries := PTMibIPForwardTable( pBuf )^.dwNumEntries;
        if NumEntries > 0 then
        begin
            inc( pBuf, SizeOf( DWORD ) );
            for i := 1 to NumEntries do
            begin
            IPForwRow := PTMibIPForwardRow( pBuf )^;
            with IPForwRow do
                List.Add( Format(
                '%15s|%15s|%15s|%8.8x|%7s|   %5.5d|    %7s|        %2.2d',
                [IPAddr2Str( dwForwardDest ),
                IPAddr2Str( dwForwardMask ),
                IPAddr2Str( dwForwardNextHop ),
                dwForwardIFIndex,
                IPForwTypes[dwForwardType],
                dwForwardNextHopAS,
                IPForwProtos[dwForwardProto],
                dwForwardMetric1] ) );
                inc( pBuf, SizeOf( TMibIPForwardRow ) );
            end;
        end
        else
            List.Add( 'no entries.' );
    end
    else
        List.Add( SysErrorMessage( ErrorCode ) );
    dec( pBuf, SizeOf( DWORD ) + NumEntries * SizeOf( TMibIPForwardRow ) );
    FreeMem( pBuf );
end;

//IP數據流量統計
procedure Get_IPStatistics( List: TStrings );
var
    IPStats       : TMibIPStats;
    ErrorCode     : integer;
begin
    if not Assigned( List ) then EXIT;
    ErrorCode := GetIPStatistics( @IPStats );
    if ErrorCode = NO_ERROR then
    begin
        List.Clear;
        with IPStats do
        begin
        if dwForwarding = 1 then
            List.add( 'Forwarding Enabled      : ' + 'Yes' )
        else
            List.add( 'Forwarding Enabled      : ' + 'No' );
            List.add( 'Default TTL             : ' + inttostr( dwDefaultTTL ) );
            List.add( 'Datagrams Received      : ' + inttostr( dwInReceives ) );
            List.add( 'Header Errors     (In)  : ' + inttostr( dwInHdrErrors ) );
            List.add( 'Address Errors    (In)  : ' + inttostr( dwInAddrErrors ) );
            List.add( 'Unknown Protocols (In)  : ' + inttostr( dwInUnknownProtos ) );
            List.add( 'Datagrams Discarded     : ' + inttostr( dwInDiscards ) );
            List.add( 'Datagrams Delivered     : ' + inttostr( dwInDelivers ) );
            List.add( 'Requests Out            : ' + inttostr( dwOutRequests ) );
            List.add( 'Routings Discarded      : ' + inttostr( dwRoutingDiscards ) );
            List.add( 'No Routes          (Out): ' + inttostr( dwOutNoRoutes ) );
            List.add( 'Reassemble TimeOuts     : ' + inttostr( dwReasmTimeOut ) );
            List.add( 'Reassemble Requests     : ' + inttostr( dwReasmReqds ) );
            List.add( 'Succesfull Reassemblies : ' + inttostr( dwReasmOKs ) );
            List.add( 'Failed Reassemblies     : ' + inttostr( dwReasmFails ) );
            List.add( 'Succesful Fragmentations: ' + inttostr( dwFragOKs ) );
            List.add( 'Failed Fragmentations   : ' + inttostr( dwFragFails ) );
            List.add( 'Datagrams Fragmented    : ' + inttostr( dwFRagCreates ) );
            List.add( 'Number of Interfaces    : ' + inttostr( dwNumIf ) );
            List.add( 'Number of IP-addresses  : ' + inttostr( dwNumAddr ) );
            List.add( 'Routes in RoutingTable  : ' + inttostr( dwNumRoutes ) );
        end;
    end
    else
        List.Add( SysErrorMessage( ErrorCode ) );
end;

//UDP數據流量統計
procedure Get_UdpStatistics( List: TStrings );
var
    UdpStats      : TMibUDPStats;
    ErrorCode     : integer;
begin
    if not Assigned( List ) then EXIT;
    ErrorCode := GetUDPStatistics( @UdpStats );
    if ErrorCode = NO_ERROR then
    begin
        List.Clear;
        with UDPStats do
        begin
        List.add( 'Datagrams (In)    : ' + inttostr( dwInDatagrams ) );
        List.add( 'Datagrams (Out)   : ' + inttostr( dwOutDatagrams ) );
        List.add( 'No Ports          : ' + inttostr( dwNoPorts ) );
        List.add( 'Errors    (In)    : ' + inttostr( dwInErrors ) );
        List.add( 'UDP Listen Ports  : ' + inttostr( dwNumAddrs ) );
        end;
    end
    else
        List.Add( SysErrorMessage( ErrorCode ) );
end;

//ICMP數據流量統計
procedure Get_ICMPStats( ICMPIn, ICMPOut: TStrings );
var
    ErrorCode     : DWORD;
    ICMPStats     : PTMibICMPInfo;
begin
    if ( ICMPIn = nil ) or ( ICMPOut = nil ) then EXIT;
    ICMPIn.Clear;
    ICMPOut.Clear;
    New( ICMPStats );
    ErrorCode := GetICMPStatistics( ICMPStats );
    if ErrorCode = NO_ERROR then
    begin
        with ICMPStats.InStats do
        begin
        ICMPIn.Add( 'Messages received    : ' + IntToStr( dwMsgs ) );
        ICMPIn.Add( 'Errors               : ' + IntToStr( dwErrors ) );
        ICMPIn.Add( 'Dest. Unreachable    : ' + IntToStr( dwDestUnreachs ) );
        ICMPIn.Add( 'Time Exceeded        : ' + IntToStr( dwTimeEcxcds ) );
        ICMPIn.Add( 'Param. Problems      : ' + IntToStr( dwParmProbs ) );
        ICMPIn.Add( 'Source Quench        : ' + IntToStr( dwSrcQuenchs ) );
        ICMPIn.Add( 'Redirects            : ' + IntToStr( dwRedirects ) );
        ICMPIn.Add( 'Echo Requests        : ' + IntToStr( dwEchos ) );
        ICMPIn.Add( 'Echo Replies         : ' + IntToStr( dwEchoReps ) );
        ICMPIn.Add( 'Timestamp Requests   : ' + IntToStr( dwTimeStamps ) );
        ICMPIn.Add( 'Timestamp Replies    : ' + IntToStr( dwTimeStampReps ) );
        ICMPIn.Add( 'Addr. Masks Requests : ' + IntToStr( dwAddrMasks ) );
        ICMPIn.Add( 'Addr. Mask Replies   : ' + IntToStr( dwAddrReps ) );
        end;
        with ICMPStats^.OutStats do
        begin
        ICMPOut.Add( 'Messages sent        : ' + IntToStr( dwMsgs ) );
        ICMPOut.Add( 'Errors               : ' + IntToStr( dwErrors ) );
        ICMPOut.Add( 'Dest. Unreachable    : ' + IntToStr( dwDestUnreachs ) );
        ICMPOut.Add( 'Time Exceeded        : ' + IntToStr( dwTimeEcxcds ) );
        ICMPOut.Add( 'Param. Problems      : ' + IntToStr( dwParmProbs ) );
        ICMPOut.Add( 'Source Quench        : ' + IntToStr( dwSrcQuenchs ) );
        ICMPOut.Add( 'Redirects            : ' + IntToStr( dwRedirects ) );
        ICMPOut.Add( 'Echo Requests        : ' + IntToStr( dwEchos ) );
        ICMPOut.Add( 'Echo Replies         : ' + IntToStr( dwEchoReps ) );
        ICMPOut.Add( 'Timestamp Requests   : ' + IntToStr( dwTimeStamps ) );
        ICMPOut.Add( 'Timestamp Replies    : ' + IntToStr( dwTimeStampReps ) );
        ICMPOut.Add( 'Addr. Masks Requests : ' + IntToStr( dwAddrMasks ) );
        ICMPOut.Add( 'Addr. Mask Replies   : ' + IntToStr( dwAddrReps ) );
        end;
    end
    else
        IcmpIn.Add( SysErrorMessage( ErrorCode ) );
    Dispose( ICMPStats );
end;

//------------------------------------------------------------------------------
procedure Get_RecentDestIPs( List: TStrings );
begin
  if Assigned( List ) then
    List.Assign( RecentIPs )
end;

initialization

  RecentIPs := TStringList.Create;

finalization

  RecentIPs.Free;

end.

{ List of Fixes & Additions

v1.1
-----
Fix :  wrong errorcode reported in GetNetworkParams()
Fix :  RTTI MaxHops 20 > 128
Add :  ICMP -statistics
Add :  Well-Known port numbers
Add :  RecentIP list
Add :  Timer update

v1.2
----
Fix :  Recent IP's correct update
ADD :  ICMP-error codes translated

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
伊人开心综合网| 国产成人无遮挡在线视频| 奇米影视一区二区三区小说| 成人网在线免费视频| 欧美一二三四在线| 一区二区三区在线观看网站| 国产99久久精品| 精品国产露脸精彩对白 | 欧美xxxxxxxxx| 亚洲一区二区三区四区的| 国产91丝袜在线播放| 欧美白人最猛性xxxxx69交| 亚洲第一成年网| 91蝌蚪国产九色| 中文字幕不卡在线播放| 国产传媒日韩欧美成人| 日韩精品专区在线影院观看| 日韩福利视频导航| 欧美电影在线免费观看| 亚洲一区二区三区四区在线| 91免费国产在线| 国产精品理论片在线观看| 国产精品123区| 久久亚洲精品国产精品紫薇| 久久精品国产久精国产爱| 欧美一三区三区四区免费在线看 | 精品在线播放午夜| 日韩欧美综合一区| 麻豆国产91在线播放| 日韩一区二区在线观看视频播放| 性做久久久久久免费观看| 欧美另类一区二区三区| 午夜精品福利视频网站| 91精品国产高清一区二区三区| 日韩精品亚洲一区二区三区免费| 欧美一区在线视频| 久久99精品久久只有精品| 精品91自产拍在线观看一区| 国产尤物一区二区| 国产欧美精品在线观看| 94-欧美-setu| 亚洲成人黄色小说| 日韩欧美一区二区免费| 国内精品嫩模私拍在线| 国产丝袜在线精品| 91蜜桃网址入口| 日韩在线一二三区| 精品国产电影一区二区| 成人一级黄色片| 一区二区欧美在线观看| 欧美一区二区大片| 国产iv一区二区三区| 亚洲精品欧美激情| 91精品久久久久久久99蜜桃 | 久久99久久久欧美国产| 久久久国际精品| 99久久er热在这里只有精品15| 亚洲图片欧美一区| 高清beeg欧美| 午夜影院久久久| 国产日韩成人精品| 欧美羞羞免费网站| 激情亚洲综合在线| 亚洲精品免费播放| 日韩三级中文字幕| 91色视频在线| 激情综合色播激情啊| 亚洲自拍偷拍图区| 2021久久国产精品不只是精品| 91丨porny丨最新| 日本sm残虐另类| 日韩伦理免费电影| 久久亚洲一区二区三区四区| 欧美视频日韩视频在线观看| 国产酒店精品激情| 日韩黄色免费电影| 亚洲图片欧美激情| 国产视频911| 日韩一级高清毛片| 色域天天综合网| 丁香天五香天堂综合| 免费看欧美女人艹b| 亚洲最快最全在线视频| 久久久久久夜精品精品免费| 欧美日韩久久一区| 不卡欧美aaaaa| 国产精品一二三四区| 免费久久99精品国产| 亚洲午夜久久久| 国产精品久久久久久久久免费桃花 | 精品成人一区二区三区四区| 欧美日韩日本视频| 91玉足脚交白嫩脚丫在线播放| 国产精品自拍毛片| 蜜臀av性久久久久蜜臀aⅴ| 亚洲一区在线电影| 亚洲精品成人a在线观看| 国产精品久久毛片| 国产农村妇女精品| 久久久国产精品麻豆| 欧美一二三四在线| 欧美一区二区美女| 欧美一区二区在线视频| 欧美视频一二三区| 欧美日韩国产一级| 欧美日韩1区2区| 欧美日韩国产系列| 欧美丰满嫩嫩电影| 欧美一区二区三区日韩| 7777精品伊人久久久大香线蕉经典版下载| 91福利视频网站| 91国产丝袜在线播放| 色狠狠综合天天综合综合| 91一区一区三区| 色婷婷精品大在线视频| 欧美视频一区二区三区四区| 91黄色免费网站| 欧美精品一二三| 4438x亚洲最大成人网| 91精品国产入口在线| 欧美一区二区三区喷汁尤物| 日韩美女天天操| 国产三级一区二区| 亚洲欧美综合在线精品| 一区二区三区日韩精品| 亚洲va欧美va天堂v国产综合| 国产在线一区观看| 国产精品一区二区久久精品爱涩| 国产传媒一区在线| 91蜜桃在线免费视频| 欧美三级韩国三级日本一级| 欧美一级欧美一级在线播放| 精品99一区二区三区| 国产精品久久国产精麻豆99网站| 亚洲伦理在线精品| 天天免费综合色| 国产一区二区剧情av在线| 成年人网站91| 欧美另类变人与禽xxxxx| 日韩欧美综合一区| 国产精品久久久久久久久搜平片 | 亚洲免费av高清| 午夜精品久久久久久久蜜桃app| 男女男精品视频| 成人午夜视频免费看| 欧美日韩成人综合天天影院 | 久久免费电影网| 亚洲女人小视频在线观看| 午夜国产不卡在线观看视频| 国精品**一区二区三区在线蜜桃| 99re6这里只有精品视频在线观看| 欧美精品在线观看播放| 国产丝袜欧美中文另类| 亚洲国产美国国产综合一区二区| 久久 天天综合| 欧美性猛片aaaaaaa做受| 久久久久高清精品| 午夜精品福利在线| 波多野结衣亚洲一区| 日韩一级片在线播放| 亚洲欧美激情视频在线观看一区二区三区| 日本成人在线一区| 日本久久一区二区三区| 精品久久一二三区| 天堂一区二区在线| jiyouzz国产精品久久| 日韩一区国产二区欧美三区| 亚洲精品亚洲人成人网| 福利一区二区在线| 欧美大片拔萝卜| 亚洲成人黄色小说| 一本色道综合亚洲| 国产精品欧美精品| 国内精品视频一区二区三区八戒 | 天天av天天翘天天综合网| 成人午夜私人影院| 久久亚洲欧美国产精品乐播| 日韩av中文字幕一区二区三区| 91偷拍与自偷拍精品| 欧美激情综合在线| 韩国理伦片一区二区三区在线播放| 欧美亚洲一区二区在线观看| 国产精品白丝在线| 99热在这里有精品免费| 久久精品视频在线看| 国内精品嫩模私拍在线| 日韩美女天天操| 久久成人免费网站| 91精品综合久久久久久| 亚洲6080在线| 欧美久久免费观看| 日本伊人色综合网| 欧美一区午夜视频在线观看| 日韩国产欧美三级| 91精品国产色综合久久| 蜜桃视频一区二区三区| 日韩一区二区麻豆国产| 青青草原综合久久大伊人精品| 欧美精品日韩综合在线| 日本vs亚洲vs韩国一区三区|