linux获取接口IP的方法
2009-08-15 11:29
489 查看
#include <stdio.h>
#include <unistd.h>
#include <apra/inet.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#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;
}
#include <unistd.h>
#include <apra/inet.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#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;
}
相关文章推荐
- Linux下设置静态IP和获取动态IP的方法
- 呵呵,Windows系统下获取本机ip的方法和Linux系统下获取本机ip的方法
- linux下使用perl获取本机ip的几种方法介绍
- 使用JS获取当前地理位置方法汇总(如用谷歌接口,会出再以上报错,必须申请密钥并设置接受服务器IP!!!)
- [置顶] Linux下获取外网IP地址的方法
- Python获取linux主机ip的简单实现方法
- linux下修改自动获取IP方法
- Linux终端中获取本机外网 IP 的方法
- Python获取linux主机ip的简单实现方法
- linux下使用perl获取本机ip的几种方法介绍
- (转载)Linux编程获取本机IP地址的三种方法
- Linux下设置静态IP和获取动态IP的方法
- linux编程获取本机IP地址的三种方法
- linux编程获取本机IP地址的三种方法
- 嵌入式linux系统获取ip的方法
- linux编程获取本机IP地址的三种方法
- linux编程获取本机IP地址的三种方法
- Linux 设置IP,gate, 以及自动获取IP的方法
- Linux 设置IP,gate, 以及自动获取IP的方法
- linux获取指定接口的IP