精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

獲取iPhone本機IP地址非調用私有API方法

移動開發 iOS
本文介紹的是如何獲取iPhone本機IP地址并且不需調用私有API方法,文中很詳細的講解了IP地址是如何獲取的,來看詳細內容。

獲取iPhone本機IP地址并且不需調用私有API方法是本文要介紹的內容,主要是手頭一個iphone項目需要取iphone本機ip地址,在iphone os 2.0上可以用下面的方法獲得。內容不多,主要是代碼實現IP地址的獲取。

  1. -(NSString*)getAddress {  
  2. char iphone_ip[255];  
  3. strcpy(iphone_ip,"127.0.0.1"); // if everything fails  
  4. NSHost* myhost = [NSHost currentHost];  
  5. if (myhost)  
  6. {  
  7.     NSString *ad = [myhost address];  
  8.     if (ad)  
  9.         strcpy(iphone_ip,[ad cStringUsingEncoding:NSISOLatin1StringEncoding]);  
  10. }  
  11.       return [NSString stringWithFormat:@"%s",iphone_ip];   
  12. }  
  13. 到3.0這個方法成了蘋果私有api了,用了不對不說,error:  
  14.  
  15. warning: no ‘+currentHost’ method found  
  16. warning: (Messages without a matching method signature)  
  17.  
  18. ,提交的app還被reject:  
  19.  
  20. [NSHost currentHost] will also work, but it is deprecated and considered a “Private API” by Apple, 
  21. so you won’t be able to submit your application to App Store.  
  22.  
  23. google很久無果;今天無意發現一個老外的blog貼了方法,試用了下完全OK,要翻墻看,轉載記錄一下.  
  24.  
  25. As far as I know there is only one hacky way to do that. You basically open a socket and get its address using POSIX functions. 
  26. Here is the code I used for this:  
  27.  
  28. /*  
  29.  *  IPAdress.h  
  30.  *  
  31.  *  
  32.  */  
  33.    
  34. #define MAXADDRS    32  
  35.    
  36. extern char *if_names[MAXADDRS];  
  37. extern char *ip_names[MAXADDRS];  
  38. extern char *hw_addrs[MAXADDRS];  
  39. extern unsigned long ip_addrs[MAXADDRS];  
  40.    
  41. // Function prototypes  
  42.    
  43. void InitAddresses();  
  44. void FreeAddresses();  
  45. void GetIPAddresses();  
  46. void GetHWAddresses();  
  47.    
  48.    
  49. /*  
  50.  *  IPAddress.c  
  51.  *  
  52.  */  
  53.    
  54. #include "IPAddress.h"  
  55.    
  56. #include <stdio.h> 
  57. #include <stdlib.h> 
  58. #include <string.h> 
  59. #include <unistd.h> 
  60. #include <sys/ioctl.h> 
  61. #include <sys/types.h> 
  62. #include <sys/socket.h> 
  63. #include <netinet/in.h> 
  64. #include <netdb.h> 
  65. #include <arpa/inet.h> 
  66. #include <sys/sockio.h> 
  67. #include <net/if.h> 
  68. #include <errno.h> 
  69. #include <net/if_dl.h> 
  70.     
  71. #define    min(a,b)    ((a) < (b) ? (a) : (b))  
  72. #define    max(a,b)    ((a) > (b) ? (a) : (b))  
  73.    
  74. #define BUFFERSIZE    4000  
  75.    
  76. char *if_names[MAXADDRS];  
  77. char *ip_names[MAXADDRS];  
  78. char *hw_addrs[MAXADDRS];  
  79. unsigned long ip_addrs[MAXADDRS];  
  80.    
  81. static int   nextAddr = 0;  
  82.    
  83. void InitAddresses()  
  84. {  
  85.     int i;  
  86.     for (i=0; i<MAXADDRS; ++i)  
  87.     {  
  88.         if_names[i] = ip_names[i] = hw_addrs[i] = NULL;  
  89.         ip_addrs[i] = 0;  
  90.     }  
  91. }  
  92.    
  93. void FreeAddresses()  
  94. {  
  95.     int i;  
  96.     for (i=0; i<MAXADDRS; ++i)  
  97.     {  
  98.         if (if_names[i] != 0) free(if_names[i]);  
  99.         if (ip_names[i] != 0) free(ip_names[i]);  
  100.         if (hw_addrs[i] != 0) free(hw_addrs[i]);  
  101.         ip_addrs[i] = 0;  
  102.     }  
  103.     InitAddresses();  
  104. }  
  105.    
  106. void GetIPAddresses()  
  107. {  
  108.     int                 i, len, flags;  
  109.     char                buffer[BUFFERSIZE], *ptr, lastname[IFNAMSIZ], *cptr;  
  110.     struct ifconf       ifc;  
  111.     struct ifreq        *ifr, ifrcopy;  
  112.     struct sockaddr_in    *sin;  
  113.       
  114.     char temp[80];  
  115.       
  116.     int sockfd;  
  117.       
  118.     for (i=0; i<MAXADDRS; ++i)  
  119.     {  
  120.         if_names[i] = ip_names[i] = NULL;  
  121.         ip_addrs[i] = 0;  
  122.     }  
  123.       
  124.     sockfd = socket(AF_INET, SOCK_DGRAM, 0);  
  125.     if (sockfd < 0)  
  126.     {  
  127.         perror("socket failed");  
  128.         return;  
  129.     }  
  130.       
  131.     ifc.ifc_len = BUFFERSIZE;  
  132.     ifc.ifc_buf = buffer;  
  133.       
  134.     if (ioctl(sockfd, SIOCGIFCONF, &ifc) < 0)  
  135.     {  
  136.         perror("ioctl error");  
  137.         return;  
  138.     }  
  139.       
  140.     lastname[0] = 0;  
  141.       
  142.     for (ptr = buffer; ptr < buffer + ifc.ifc_len; )  
  143.     {  
  144.         ifr = (struct ifreq *)ptr;  
  145.         len = max(sizeof(struct sockaddr), ifr->ifr_addr.sa_len);  
  146.         ptr += sizeof(ifr->ifr_name) + len;    // for next one in buffer  
  147.           
  148.         if (ifr->ifr_addr.sa_family != AF_INET)  
  149.         {  
  150.             continue;    // ignore if not desired address family  
  151.         }  
  152.           
  153.         if ((cptr = (char *)strchr(ifr->ifr_name, ':')) != NULL)  
  154.         {  
  155.             *cptr = 0;        // replace colon will null  
  156.         }  
  157.           
  158.         if (strncmp(lastname, ifr->ifr_name, IFNAMSIZ) == 0)  
  159.         {  
  160.             continue;    /* already processed this interface */  
  161.         }  
  162.           
  163.         memcpy(lastname, ifr->ifr_name, IFNAMSIZ);  
  164.           
  165.         ifrcopy = *ifr;  
  166.         ioctl(sockfd, SIOCGIFFLAGS, &ifrcopy);  
  167.         flags = ifrcopy.ifr_flags;  
  168.         if ((flags & IFF_UP) == 0)  
  169.         {  
  170.             continue;    // ignore if interface not up  
  171.         }  
  172.           
  173.         if_names[nextAddr] = (char *)malloc(strlen(ifr->ifr_name)+1);  
  174.         if (if_names[nextAddr] == NULL)  
  175.         {  
  176.             return;  
  177.         }  
  178.         strcpy(if_names[nextAddr], ifr->ifr_name);  
  179.           
  180.         sin = (struct sockaddr_in *)&ifr->ifr_addr;  
  181.         strcpy(temp, inet_ntoa(sin->sin_addr));  
  182.           
  183.         ip_names[nextAddr] = (char *)malloc(strlen(temp)+1);  
  184.         if (ip_names[nextAddr] == NULL)  
  185.         {  
  186.             return;  
  187.         }  
  188.         strcpy(ip_names[nextAddr], temp);  
  189.           
  190.         ip_addrs[nextAddr] = sin->sin_addr.s_addr;  
  191.           
  192.         ++nextAddr;  
  193.     }  
  194.       
  195.     close(sockfd);  
  196. }  
  197.    
  198. void GetHWAddresses()  
  199. {  
  200.     struct ifconf ifc;  
  201.     struct ifreq *ifr;  
  202.     int i, sockfd;  
  203.     char buffer[BUFFERSIZE], *cp, *cplim;  
  204.     char temp[80];  
  205.       
  206.     for (i=0; i<MAXADDRS; ++i)  
  207.     {  
  208.         hw_addrs[i] = NULL;  
  209.     }  
  210.       
  211.     sockfd = socket(AF_INET, SOCK_DGRAM, 0);  
  212.     if (sockfd < 0)  
  213.     {  
  214.         perror("socket failed");  
  215.         return;  
  216.     }  
  217.       
  218.     ifc.ifc_len = BUFFERSIZE;  
  219.     ifc.ifc_buf = buffer;  
  220.       
  221.     if (ioctl(sockfd, SIOCGIFCONF, (char *)&ifc) < 0)  
  222.     {  
  223.         perror("ioctl error");  
  224.         close(sockfd);  
  225.         return;  
  226.     }  
  227.       
  228.     ifr = ifc.ifc_req;  
  229.       
  230.     cplim = buffer + ifc.ifc_len;  
  231.       
  232.     for (cp=buffer; cp < cplim; )  
  233.     {  
  234.         ifr = (struct ifreq *)cp;  
  235.         if (ifr->ifr_addr.sa_family == AF_LINK)  
  236.         {  
  237.             struct sockaddr_dl *sdl = (struct sockaddr_dl *)&ifr->ifr_addr;  
  238.             int a,b,c,d,e,f;  
  239.             int i;  
  240.               
  241.             strcpy(temp, (char *)ether_ntoa(LLADDR(sdl)));  
  242.             sscanf(temp, "%x:%x:%x:%x:%x:%x", &a, &b, &c, &d, &e, &f);  
  243.             sprintf(temp, "%02X:%02X:%02X:%02X:%02X:%02X",a,b,c,d,e,f);  
  244.               
  245.             for (i=0; i<MAXADDRS; ++i)  
  246.             {  
  247.                 if ((if_names[i] != NULL) && (strcmp(ifr->ifr_name,if_names[i]) == 0))  
  248.                 {  
  249.                     if (hw_addrs[i] == NULL)  
  250.                     {  
  251.                         hw_addrs[i] = (char *)malloc(strlen(temp)+1);  
  252.                         strcpy(hw_addrs[i], temp);  
  253.                         break;  
  254.                     }  
  255.                 }  
  256.             }  
  257.         }  
  258.         cp += sizeof(ifr->ifr_name) + max(sizeof(ifr->ifr_addr), ifr->ifr_addr.sa_len);  
  259.     }  
  260.       
  261.     close(sockfd);  
  262. }  
  263. test:  
  264.  
  265. #import "IPAdress.h"  
  266.  
  267. - (NSString *)deviceIPAdress {  
  268.     InitAddresses();  
  269.     GetIPAddresses();  
  270.     GetHWAddresses();  
  271.     return [NSString stringWithFormat:@"%s", ip_names[1]];  
  272. }  
  273.    
  274. - (void)viewDidLoad {  
  275.     [super viewDidLoad];  
  276.    
  277.     NSString* ip_iphone = [self deviceIPAdress];  
  278.    NSLog(@"ip:%@",ip_iphone);  

小結:獲取iPhone本機IP地址非調用私有API方法的內容介紹完了,希望本文能對你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2009-12-04 08:48:38

FAST路由器IP地址

2011-08-05 16:58:25

iPad iPhone UIImagePic

2011-09-26 09:54:40

perl獲取本機ip

2009-06-19 17:31:59

Java獲取IP地址

2020-11-30 12:15:26

KubernetesPodLinux

2011-07-25 15:46:10

iPhone 動態

2010-06-13 14:26:22

IP協議地址

2011-11-30 15:43:40

JavaJSP

2009-09-18 19:21:17

C#接口

2024-04-15 05:00:00

kubernete網絡容器

2009-07-24 10:38:35

ASP.NET獲取MA

2018-11-29 13:50:02

APIAPP數據集

2009-12-07 09:31:23

Linux系統調用表地址

2009-02-18 10:17:00

寬帶網絡IP地址

2018-05-14 10:56:36

MySQL數據庫存儲

2019-08-22 07:24:25

2020-09-16 18:27:36

Linux方法IP地址

2022-10-10 09:13:09

本機函數匯編代碼

2015-07-10 09:08:52

IP地址IP地址沖突

2020-04-23 09:11:09

網絡協議網絡設備網絡
點贊
收藏

51CTO技術棧公眾號

婷婷久久综合九色综合绿巨人| 蜜桃一区二区三区四区| 日韩欧美国产系列| 国产精品裸体瑜伽视频| 欧美欧美欧美| 久久av老司机精品网站导航| 国内免费精品永久在线视频| 国产美女免费网站| 一区中文字幕电影| 在线观看成人免费视频| 欧美日韩午夜爽爽| 欧美美女色图| 国产成人在线观看| 国产精品老女人视频| 毛片a片免费观看| 欧美日韩国产传媒| 精品少妇一区二区三区在线播放 | 日韩男女性生活视频| 午夜三级在线观看| 欧洲亚洲一区二区三区| 91精品欧美福利在线观看| 国产免费成人在线| 欧美wwww| 136国产福利精品导航| 欧美伦理一区二区| 国产91麻豆视频| 黑人巨大精品欧美一区| 日韩美女视频中文字幕| 国产精品999久久久| 国产精品久久久久久久| 亚洲视频999| 日韩无码精品一区二区| 国产日韩一区二区三免费高清| 色婷婷综合激情| 亚洲人成无码网站久久99热国产 | 亚洲高清在线免费观看| www.8ⅹ8ⅹ羞羞漫画在线看| 亚洲欧美激情一区二区| 午夜精品一区二区三区在线观看| 午夜在线视频观看| 成年人午夜久久久| 国产精品12| www.五月激情| 国产一区二区调教| 91在线|亚洲| 国产一区二区三区四区视频| 欧美a级理论片| 国产精品1区2区在线观看| 在线能看的av| 一区二区日本视频| 久久免费国产视频| 久久久久久久九九九九| 欧美另类视频| 欧美极品少妇全裸体| 久久精品视频免费在线观看| 一区二区电影在线观看| 久久手机精品视频| 波多野结衣爱爱视频| 一本精品一区二区三区| 欧美大片免费看| 性欧美疯狂猛交69hd| 天堂网在线观看国产精品| www.日韩av.com| 艳妇荡乳欲伦69影片| 91欧美在线| 久久精品精品电影网| 日本午夜精品视频| 99久久亚洲精品蜜臀| 久久婷婷国产麻豆91天堂| 国产1区2区3区4区| 一区视频在线| 日本老师69xxx| 波多野结衣在线观看一区| 蜜桃久久久久久久| 91青草视频久久| 黑人精品一区二区| 91亚洲精品久久久蜜桃网站| 欧美日韩在线高清| 91在线看片| 亚洲精品中文字幕乱码三区| 男的插女的下面视频| 在线人成日本视频| 精品婷婷伊人一区三区三| 天天做天天干天天操| 2023国产精华国产精品| 亚洲免费视频观看| 国产精品国产三级国产传播| 欧美精品18| 欧美综合激情网| 92久久精品一区二区| 成人午夜在线播放| 欧美一区二区在线| 国产在线观看a视频| 亚洲va韩国va欧美va精品| 老熟妇仑乱视频一区二区 | 韩日成人av| 欧洲日韩成人av| 国产原创中文av| 久久97久久97精品免视看秋霞| 精品1区2区在线观看| 中文字幕狠狠干| 98精品久久久久久久| 午夜精品久久久久久久白皮肤| 日韩欧美国产另类| 国产精品系列在线播放| 欧美日韩另类丝袜其他| 大片免费在线观看| 色婷婷激情一区二区三区| 一本一道久久a久久综合蜜桃| 黑人久久a级毛片免费观看| 在线观看日韩www视频免费| 久久婷婷国产麻豆91| 美腿丝袜亚洲一区| 久久精品99| 手机在线免费看av| 欧美三级中文字幕在线观看| 欧美做受高潮中文字幕| 97视频热人人精品免费| 日韩av免费一区| 亚洲卡一卡二卡三| 国产精品久久久久久久久免费樱桃| 日韩伦理在线免费观看| 国产精品亚洲欧美日韩一区在线| 亚洲欧美一区二区精品久久久| a级片在线观看免费| 蜜桃免费网站一区二区三区| 免费久久久一本精品久久区| 日本成人不卡| 欧美久久久久久蜜桃| 国产精品揄拍100视频| 国产综合自拍| 91在线观看免费| 中文字幕在线观看日本| 色婷婷综合中文久久一本| 在线免费观看a级片| 欧美黄色精品| 91青草视频久久| 免费在线你懂的| 欧美天堂亚洲电影院在线播放| 成人无码www在线看免费| 激情亚洲成人| 成人xxxxx色| 中文在线手机av| 91精品国产综合久久精品性色| 免费黄在线观看| 久久久天天操| 欧美日韩精品中文字幕一区二区| 五月天国产在线| 日韩精品有码在线观看| 日本少妇激情舌吻| 不卡视频在线观看| 少妇高潮毛片色欲ava片| 给我免费播放日韩视频| 久久久久中文字幕2018| 日本国产在线观看| 精品国产精品自拍| 风间由美一二三区av片| 国产精品免费看| 欧美黄色直播| 草民电影神马电影一区二区| 最近2019中文字幕在线高清| 97超碰中文字幕| 亚洲精品综合在线| 国产精品扒开腿做爽爽爽a片唱戏 亚洲av成人精品一区二区三区 | 成都免费高清电影| 日韩综合在线视频| 亚洲欧洲三级| 免费欧美网站| 97成人在线视频| 你懂的在线观看视频网站| 在线看不卡av| 小早川怜子一区二区的演员表| 国产美女一区二区| 2018国产在线| 九九久久精品| 成人精品视频99在线观看免费 | 精品人妻一区二区三区蜜桃| 亚洲国产视频网站| 国精产品一区一区三区免费视频 | 美丽的姑娘在线观看免费动漫| 色综合天天做天天爱| 四虎成人免费影院| 国产精品2024| 国产免费黄视频| 久久裸体网站| 精品国产乱码久久久久久丨区2区| 午夜av不卡| www.亚洲一区| 天天干天天舔天天射| 欧美三级午夜理伦三级中视频| 杨钰莹一级淫片aaaaaa播放| www..com久久爱| 性chinese极品按摩| 一区二区视频欧美| 亚洲欧美国产不卡| 男人的天堂久久| 成人国产精品av| 成人黄色动漫| 久久影视免费观看| 可以在线观看的av| 欧美大片顶级少妇| 亚洲天堂久久久久| 图片区小说区国产精品视频| 中文字幕资源站| 91啦中文在线观看| 国模大尺度视频| 日本va欧美va精品| 欧美日韩精品在线一区二区 | 久久久噜噜噜久噜久久综合| 成人免费黄色av| 免费在线成人网| 日日碰狠狠添天天爽超碰97| 国产精品二区不卡| 日本不卡久久| 欧美爱爱网站| 91成人免费观看| 日韩高清在线| 欧美亚洲国产视频小说| 伊人春色在线观看| 精品国产区一区二区三区在线观看 | 免费视频一区| 日韩中文字幕在线免费| 久久精品国产www456c0m| 青青草成人激情在线| 国产精品极品国产中出| 亚洲自拍中文字幕| 亚洲电影二区| 国产精品日韩专区| 电影亚洲精品噜噜在线观看| 亚洲**2019国产| 国产探花在线观看| 九色91av视频| 91极品在线| 久久这里有精品| 免费av网站在线观看| 在线观看亚洲视频| 国产福利在线| 国产一区二区三区欧美| 免费在线看v| 日韩电影在线观看永久视频免费网站| 成 人片 黄 色 大 片| 欧美一二三四区在线| 国产欧美第一页| 这里只有精品免费| 国产又大又黑又粗| 欧美日韩国产美女| 精品成人无码久久久久久| 色综合久久九月婷婷色综合| 久久夜色精品国产噜噜亚洲av| 欧美日韩在线观看视频| 久久国产视频精品| 欧美性猛交丰臀xxxxx网站| 五月激情六月丁香| 欧美主播一区二区三区美女| 波多野结衣理论片| 欧美在线观看一区二区| 这里只有久久精品视频| 精品污污网站免费看| 国产精品久久久久久久久毛片 | 欧美在线短视频| 在线播放一级片| 91精品欧美综合在线观看最新 | 丰满白嫩尤物一区二区| 中文字幕乱视频| 97se亚洲国产综合在线| 精品人妻无码一区二区三区 | 亚洲成色777777在线观看影院| 日批免费在线观看| 亚洲小视频在线观看| 一级日本在线| 色综合久久久888| 一二三四视频在线中文| 国产精品一区二区三区成人| 成人51免费| 精品一区二区三区视频日产| 国产精品最新| 自拍偷拍99| 在线电影一区| 日韩av片网站| 国产盗摄视频一区二区三区| 三级男人添奶爽爽爽视频| 国产欧美一区二区精品性色| 天天看片中文字幕| 色综合久久久久综合体桃花网| 在线观看中文字幕av| 日韩欧美在线网站| 黄色影院在线播放| 清纯唯美亚洲经典中文字幕| 国产欧美日韩精品专区| 午夜久久av| 日本电影一区二区三区| 亚洲色图网站| 黄色a级片免费| 国产精品羞羞答答xxdd| 美女久久久久久久久久| 亚洲视频中文字幕| 无码人妻精品一区二区50| 欧美精品vⅰdeose4hd| 婷婷五月综合久久中文字幕| 日韩在线免费视频| 超碰在线cao| 国产一区视频在线播放| 亚洲都市激情| 日本大片免费看| 六月婷婷色综合| 欧美精品黑人猛交高潮| 亚洲欧美另类小说| 国产男人搡女人免费视频| 亚洲白虎美女被爆操| 一区二区三区视频网站| 日韩美女免费视频| 国产一区二区三区不卡av| 一区二区三区国| 久久精品亚洲| 免费黄色三级网站| 亚洲精品国产品国语在线app| 中国一区二区视频| 亚洲美女性生活视频| 国产资源在线观看入口av| 666精品在线| 四虎成人精品永久免费av九九| 日本网站免费在线观看| 粉嫩aⅴ一区二区三区四区| 日本爱爱小视频| 91搞黄在线观看| 外国精品视频在线观看 | 精品免费国产| 欧美日韩国产探花| 欧美成人三级在线播放| 久久久国产午夜精品| 天天综合天天干| 日韩av中文字幕在线播放| 黄页网站大全在线免费观看| 91丝袜脚交足在线播放| 91精品天堂福利在线观看| 污污网站免费观看| 国产精品亲子乱子伦xxxx裸| 男操女视频网站| 亚洲视屏在线播放| 黄瓜视频成人app免费| 欧美18视频| 美女精品在线| 香蕉网在线播放| 香蕉加勒比综合久久| 日本激情一区二区| 97精品久久久| 国产精品tv| 亚洲熟妇国产熟妇肥婆| bt7086福利一区国产| 91九色蝌蚪成人| 亚洲精品伦理| 99精品视频网站| 国产乱一区二区| 免费在线观看日韩| 亚洲成av人乱码色午夜| 成人三级高清视频在线看| 久久精品国产第一区二区三区最新章节| 一本色道久久综合亚洲精品高清 | 欧美精品色婷婷五月综合| 91免费看视频| 综合久久中文字幕| 精品国产一区二区在线| 亚洲欧洲日韩精品在线| a级网站在线观看| 国产成人精品一区二| 日韩成年人视频| 亚洲图片制服诱惑| 欧美aaaaaa| 久久av高潮av| 26uuu亚洲| 亚洲天天综合网| 欧美疯狂xxxx大交乱88av| 国产精品毛片久久久| 成年人免费在线播放| 国产精品美女久久久久高潮| 国产色综合视频| 2020国产精品视频| 精品久久美女| 亚洲精品无码久久久久久久| 亚洲综合久久久久| 好男人免费精品视频| 国产欧美一区二区白浆黑人| 国语精品一区| 蜜臀久久99精品久久久久久| 日韩一区二区视频| 欧美专区福利免费| 一区二区三区日韩视频| 波多野结衣一区二区三区 | 亚洲国产欧洲综合997久久| 国产乱色国产精品免费视频| 中文字幕超碰在线| 色偷偷88888欧美精品久久久| 一区二区三区免费在线看| 女人另类性混交zo| 亚洲天天做日日做天天谢日日欢| 五月激情婷婷综合| 成人免费直播live| 另类天堂av| 九九热只有精品| 最近2019中文字幕第三页视频|