设为首页 加入收藏

TOP

Linux获取接口IP的方法
2014-11-24 02:26:20 来源: 作者: 【 】 浏览:2
Tags:Linux 获取 接口 方法

Linux获取接口IP的方法


#include
#include
#include
#include
#include
#define IFNAMSIZ 16
struct ifreq {
char ifr_name[IFNAMSIZ]; // interface name, e.g., "eth0"
union {
struct sockaddr ifru_addr;
struct sockaddr ifru_dstaddr;
struct sockaddr ifru_broadaddr;
short ifru_flags;
int ifru_metric;
caddr_t ifru_data;
} ifr_ifru;
};
unsigned long do_ioctl_get_ipaddress(char *dev)
{
struct ifreq ifr;
int fd;
unsigned long ip;
struct in_addr tmp_addr;
strcpy(ifr.ifr_ifru.ifr_name, dev);
fd = socket(AF_INET, SOCK_DGRAM, 0);
if (ioctl(fd, SIOCGIFADDR, &ifr)) {
perror("ioctl error");
return 0;
}
close(fd);
memcpy(&ip,ifr.ifr_addr.sa_data + 2,4);
tmp_addr.s_addr=ip;
printf("%s : %s\n", dev, inet_ntoa(tmp_addr));
return ip;
}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Ubuntu下配置Flex开发环境 下一篇《C++高级编程》之理解C++疑难问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: