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

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

?? if_index.c

?? 不用說了吧
?? C
字號:
/* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.   This program is free software; you can redistribute it and/or   modify it under the terms of the GNU General Public License   as published by the Free Software Foundation; either version 2   of the License, or (at your option) any later version.   This program is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.   You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,   MA 02110-1301 USA. */#ifdef HAVE_CONFIG_H#include <config.h>#endif#include <errno.h>#include <string.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>/* Solaris at least earlier 2.6 and before does not include   the ioctl definitions if BSD_COMP is not set.  */#if defined(__svr4__)# define BSD_COMP 1#endif#include <sys/ioctl.h>#include <net/if.h>#include <ifconfig.h>unsigned intif_nametoindex (const char *ifname){  int result = 0;#ifdef SIOCGIFINDEX  {    int fd = socket (AF_INET, SOCK_DGRAM, 0);    if (fd >= 0)      {	struct ifreq ifr;	strncpy (ifr.ifr_name, ifname, sizeof (ifr.ifr_name));	ifr.ifr_name[IFNAMSIZ - 1] = '\0';	result = ioctl (fd, SIOCGIFINDEX, &ifr);	close (fd);	if (result == 0)	  return ifr.ifr_index;      }  }#endif  {    struct if_nameindex *idx;    idx = if_nameindex ();    if (idx != NULL)      {	struct if_nameindex *p;	for (p = idx; p->if_index || p->if_name; ++p)	  {	    if (strncmp (p->if_name, ifname, IFNAMSIZ) == 0)	      {		result = p->if_index;		break;	      }	  }	if_freenameindex (idx);      }    return result;  }}voidif_freenameindex (struct if_nameindex *ifn){  struct if_nameindex *ptr = ifn;  if (!ifn) return;  while (ptr->if_name || ptr->if_index)    {      if (ptr->if_name)	free (ptr->if_name);      ++ptr;    }  free (ifn);}struct if_nameindex *if_nameindex (void){#if defined(SIOCGIFCONF)  int fd = socket (AF_INET, SOCK_DGRAM, 0);  struct ifconf ifc;  unsigned int i = 0;  int rq_len, last_len;  struct if_nameindex *idx = NULL;  struct ifreq *ifr, *end, *cur;  if (fd < 0)    return NULL;  /* A first estimate.  */  rq_len = 4 * sizeof (struct ifreq);  ifc.ifc_buf = NULL;  ifc.ifc_len = 0;  /* Read all the interfaces out of the kernel.  */  do    {      last_len = ifc.ifc_len;      ifc.ifc_buf = alloca (ifc.ifc_len = rq_len);      if (ifc.ifc_buf == NULL || ioctl (fd, SIOCGIFCONF, &ifc) < 0)	{	  close (fd);	  return NULL;	}      rq_len *= 2;    }  while (ifc.ifc_len != last_len);  i = 0;  ifr = (struct ifreq *)ifc.ifc_req;  end = (struct ifreq *)((caddr_t)ifr + ifc.ifc_len);  while (ifr < end)    {      int len;#ifdef HAVE_SOCKADDR_SA_LEN#undef MAX#define MAX(a,b)  (((a) > (b)) ? (a) : (b))      len = MAX(sizeof (struct sockaddr), ifr->ifr_addr.sa_len);#else      len = sizeof (struct sockaddr);#endif      cur = ifr;      /* Step along the array by the size of the current structure */      ifr = (struct ifreq *)((caddr_t)ifr + len + IFNAMSIZ);      /* We ignore the other families .. OK ?  */      if (cur->ifr_addr.sa_family != AF_INET)	continue;      /* Make Room safely.  */      {	struct if_nameindex *tidx = NULL;	tidx = realloc (idx, (i + 1) * sizeof(*idx));	if (tidx == NULL)	  {	    if_freenameindex (idx);	    close (fd);	    errno = ENOBUFS;	    return NULL;	  }	idx = tidx;      }      /* FIXME: We did not deal with duplicates or interface aliases.  */      idx[i].if_name = strdup (cur->ifr_name);      if (idx[i].if_name == NULL)	{	  if_freenameindex (idx);	  close (fd);	  errno = ENOBUFS;	  return NULL;	}# if defined(SIOCGIFINDEX)      if (ioctl (fd, SIOCGIFINDEX, cur) >= 0)	idx[i].if_index = cur->ifr_index;      else# endif	idx[i].if_index =  i + 1;      i++;	    }  /* Terminate the array with an empty solt.  */  {    struct if_nameindex *tidx = NULL;    tidx = realloc (idx, (i + 1) * sizeof(*idx));    if (tidx == NULL)      {	if_freenameindex (idx);	close (fd);	errno = ENOBUFS;	return NULL;      }    idx = tidx;  }  idx[i].if_index = 0;  idx[i].if_name = NULL;  close (fd);  return idx;#else  errno = ENOSYS;  return NULL;#endif}char *if_indextoname (unsigned int ifindex, char *ifname){#if defined SIOCGIFNAME  {    int fd = socket (AF_INET, SOCK_DGRAM, 0);    if (fd >= 0)      {	struct ifreq ifr;	ifr.ifr_index = ifindex;	if (ioctl (fd, SIOCGIFNAME, &ifr) == 0)	  {	    close (fd);	    strncpy (ifname, ifr.ifr_name, IFNAMSIZ);	    ifname[IFNAMSIZ - 1] = '\0';	    return ifname;	  }	close (fd);      }  }#else  {    struct if_nameindex *idx;    char *result = NULL;    idx = if_nameindex ();    if (idx != NULL)      {	struct if_nameindex *p;	for (p = idx; p->if_index || p->if_name; ++p)	  {	    if (p->if_index == ifindex)	      {		result = strncpy (ifname, p->if_name, IFNAMSIZ);		result[IFNAMSIZ - 1] = '\0';		break;	      }	  }	if_freenameindex (idx);      }    return result;  }#endif}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
视频在线观看一区二区三区| 一区二区三区毛片| 欧美日韩免费一区二区三区| 99在线热播精品免费| 国产电影精品久久禁18| 国内精品免费**视频| 免费欧美日韩国产三级电影| 日韩一区精品视频| 久久精品国产**网站演员| 久久国产精品72免费观看| 免费观看日韩电影| 国内精品伊人久久久久影院对白| 久久精品99久久久| 国产91露脸合集magnet| 91一区二区在线| 欧美图片一区二区三区| 日韩视频免费观看高清完整版在线观看 | 色琪琪一区二区三区亚洲区| 91香蕉国产在线观看软件| 色国产精品一区在线观看| 欧美日本在线播放| 日韩精品中文字幕在线不卡尤物 | 波波电影院一区二区三区| 91美女在线观看| 欧美人成免费网站| 欧美精品一区男女天堂| 国产精品日韩成人| 亚洲国产人成综合网站| 国产专区综合网| a亚洲天堂av| 这里是久久伊人| 国产欧美日韩视频一区二区| 亚洲激情网站免费观看| 美女视频网站黄色亚洲| 国产69精品久久久久毛片| 在线欧美日韩国产| 久久久综合网站| 亚洲一区二区三区美女| 国产美女一区二区三区| 欧美无乱码久久久免费午夜一区 | 欧美日韩激情在线| 欧美精品一区二区三区高清aⅴ| 国产精品久久久一本精品| 亚洲成人第一页| 东方欧美亚洲色图在线| 欧美一级一区二区| 亚洲精品免费在线| 国产精品一线二线三线精华| 欧美色精品天天在线观看视频| 国产午夜精品美女毛片视频| 污片在线观看一区二区| 91原创在线视频| xfplay精品久久| 蜜臀99久久精品久久久久久软件| 99精品国产热久久91蜜凸| 久久久久久久久97黄色工厂| 日本在线不卡视频一二三区| 91蝌蚪porny九色| 久久精品欧美一区二区三区不卡 | 26uuu成人网一区二区三区| 亚洲电影第三页| 91农村精品一区二区在线| 国产亚洲短视频| 免费成人av在线播放| 欧美日免费三级在线| 最新久久zyz资源站| 福利电影一区二区| 久久久久久久综合| 六月丁香综合在线视频| 欧美一区二区三区视频在线 | 黑人精品欧美一区二区蜜桃| 欧美日韩精品电影| 亚洲成人精品一区| 在线不卡欧美精品一区二区三区| 亚洲香肠在线观看| 欧美日韩精品三区| 五月激情综合婷婷| 日韩欧美国产一二三区| 日韩国产欧美三级| 日韩午夜电影av| 久久电影网电视剧免费观看| 日韩一区二区三区电影在线观看 | 99r精品视频| 亚洲欧洲成人自拍| 91视频免费观看| 夜夜嗨av一区二区三区| 欧美日韩欧美一区二区| 日韩国产高清在线| 欧美一区二区国产| 国产精品1024久久| 亚洲欧美日韩一区二区三区在线观看| 97久久精品人人爽人人爽蜜臀| 亚洲天堂久久久久久久| 欧美亚洲动漫另类| 秋霞午夜鲁丝一区二区老狼| 精品国产免费人成电影在线观看四季| 国内久久婷婷综合| √…a在线天堂一区| 欧美性色aⅴ视频一区日韩精品| 午夜精品视频一区| 精品99一区二区三区| 成人高清视频免费观看| 亚洲免费在线视频一区 二区| 欧美日韩亚洲国产综合| 精品系列免费在线观看| 国产精品国产自产拍高清av | 日本亚洲三级在线| 国产精品视频免费看| 色婷婷久久久久swag精品 | 欧美国产国产综合| 91麻豆精品在线观看| 日韩精品每日更新| 中文字幕av一区 二区| 欧美丰满少妇xxxbbb| 高清av一区二区| 爽爽淫人综合网网站| 亚洲国产精品黑人久久久| 欧美日韩免费观看一区三区| 国产大片一区二区| 午夜影院久久久| 日韩一区在线看| 日韩午夜激情av| 欧美自拍偷拍午夜视频| 国内外成人在线| 五月天欧美精品| 亚洲精品免费看| 欧美国产一区视频在线观看| 在线观看91精品国产麻豆| 91亚洲午夜精品久久久久久| 精品一区二区免费| 性欧美大战久久久久久久久| 自拍偷拍欧美精品| 26uuu国产电影一区二区| 欧美电影影音先锋| 欧洲在线/亚洲| 成人动漫视频在线| 国产成人啪免费观看软件| 人妖欧美一区二区| 日韩电影在线观看网站| 亚洲另类在线一区| 亚洲欧美中日韩| 国产精品美女久久久久aⅴ| 精品美女被调教视频大全网站| 欧美亚洲丝袜传媒另类| 色哟哟一区二区在线观看| 国产91精品免费| 粉嫩绯色av一区二区在线观看| 国产资源在线一区| 国产一区二区在线免费观看| 日韩电影在线一区二区三区| 亚洲国产视频一区二区| 亚洲靠逼com| 亚洲激情在线激情| 国产精品久久三区| 综合久久给合久久狠狠狠97色| 中文字幕一区二区三区四区不卡| 国产喂奶挤奶一区二区三区| 久久午夜电影网| 国产日韩一级二级三级| 亚洲国产精品传媒在线观看| 国产精品亲子乱子伦xxxx裸| 国产精品久久综合| 亚洲私人黄色宅男| 一区二区三区在线看| 亚洲国产一二三| 免费观看日韩av| 国产精品99久久久久久有的能看| 国产98色在线|日韩| 91丝袜国产在线播放| 在线影院国内精品| 欧美精品aⅴ在线视频| 欧美成人a视频| 国产日韩av一区二区| 国产精品午夜久久| 一区二区三区在线观看动漫| 一片黄亚洲嫩模| 日本午夜一区二区| 国产成人精品影视| 欧洲一区二区三区在线| 日韩欧美一区电影| 国产精品女同一区二区三区| 一级中文字幕一区二区| 麻豆免费精品视频| 成人动漫视频在线| 这里是久久伊人| 国产精品久久久久久久久果冻传媒 | 欧美videossexotv100| 欧美激情在线观看视频免费| 一区二区三区在线免费观看| 精品一区二区三区在线播放| 99久久久无码国产精品| 777奇米成人网| 国产欧美一区二区三区网站| 午夜精品久久久久久久| 国产98色在线|日韩| 欧美精品99久久久**| 18涩涩午夜精品.www| 捆绑调教美女网站视频一区| 粉嫩蜜臀av国产精品网站| 欧美一区二区三区电影|