首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

linux内核中关于dns数据结构的定义在哪里?解决方法

2012-02-11 
linux内核中关于dns数据结构的定义在哪里??linux内核中关于dns数据结构的定义在哪里??谢谢回答!!![解决办

linux内核中关于dns数据结构的定义在哪里??
linux内核中关于dns数据结构的定义在哪里??

谢谢回答!!!

[解决办法]
楼主是说这个么?这个是获取不到dns的,只能得到,ip、广播、网关、硬件地址、mtu等
inline int
__nmn_stat_rtr_get_nic_addr(void *addr, const u32 x, const u32 addrtype)
{
struct ifreq ifr;
struct sockaddr_in sin;
int sock = socket(AF_INET, SOCK_DGRAM, 0);
if(-1 == sock){
return ERROR;
}
snprintf(ifr.ifr_name, IFNAMSIZ, "eth%u", x);
ifr.ifr_name[IFNAMSIZ-1] = 0;
if(-1 == ioctl(sock, addrtype, &ifr)){
return ERROR;
}
switch(addrtype)
{
case SIOCGIFADDR:
case SIOCGIFNETMASK:
//case SIOCGIFDSTADDR:
case SIOCGIFBRDADDR:
memcpy(&sin, &(ifr.ifr_dstaddr), sizeof(sin));
memcpy(addr, &sin.sin_addr.s_addr, sizeof(sin.sin_addr.s_addr));
break;
case SIOCGIFHWADDR:
memcpy(addr, &(ifr.ifr_hwaddr.sa_data), 6);
break;
case SIOCGIFMTU:
memcpy(addr, &(ifr.ifr_mtu), sizeof(addr));
break;
default:
return ERROR;
}
return NOERR;
}
[解决办法]

C/C++ code
inline int__nmn_stat_rtr_get_nic_addr(void *addr, const u32 x, const u32 addrtype){    struct ifreq ifr;    struct sockaddr_in sin;    int sock = socket(AF_INET, SOCK_DGRAM, 0);    if(-1 == sock){        return ERROR;    }    snprintf(ifr.ifr_name, IFNAMSIZ, "eth%u", x);    ifr.ifr_name[IFNAMSIZ-1] = 0;    if(-1 == ioctl(sock, addrtype, &ifr)){        return ERROR;    }    switch(addrtype)    {    case SIOCGIFADDR:    case SIOCGIFNETMASK://    case SIOCGIFDSTADDR:    case SIOCGIFBRDADDR:        memcpy(&sin, &(ifr.ifr_dstaddr), sizeof(sin));        memcpy(addr, &sin.sin_addr.s_addr, sizeof(sin.sin_addr.s_addr));        break;    case SIOCGIFHWADDR:        memcpy(addr, &(ifr.ifr_hwaddr.sa_data), 6);        break;    case SIOCGIFMTU:        memcpy(addr, &(ifr.ifr_mtu), sizeof(addr));        break;    default:        return ERROR;    }    return NOERR;} 

热点排行