linux获取指定接口的IP
2012-08-26 17:23
323 查看
#include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/ioctl.h> #include <sys/socket.h> #include <net/if.h> #define NIPQUAD(addr) \ ((unsigned char *)&addr)[0], \ ((unsigned char *)&addr)[1], \ ((unsigned char *)&addr)[2], \ ((unsigned char *)&addr)[3] #define NIPQUAD_FMT "%u.%u.%u.%u" uint32_t obtain_ip(const char *dev) { int fd = -1; struct ifreq ifr; struct sockaddr_in *addr; strncpy(ifr.ifr_name, dev, IFNAMSIZ); fd = socket(AF_INET, SOCK_DGRAM, 0); if (fd < 0) { perror("socket()"); return 0; } if (ioctl(fd, SIOCGIFADDR, &ifr)) { perror("ioctl()"); close(fd); return 0; } close(fd); addr = (struct sockaddr_in *)&(ifr.ifr_addr); return addr->sin_addr.s_addr; } int main(int argc, char **argv) { uint32_t ip = obtain_ip(argv[1]); if (ip) printf("ip: %u.%u.%u.%u\n", NIPQUAD(ip)); return 0; }
相关文章推荐
- Linux 下获取LAN中指定IP的网卡的MAC(物理地址)
- Linux 下获取LAN中指定IP的网卡的MAC(物理地址)
- Linux下使用ioctl获取本地接口IP
- Linux 下获取LAN中指定IP的网卡的MAC(物理地址)
- linux获取接口IP的方法
- 利用sina接口获取指定ip所在地区
- Linux系统 C++ 获取网络接口,以及主机网关IP
- linux下C编程_获取指定网卡IP信息
- linux获取/查看本机出口ip
- linux编程获取本机IP地址
- Linux开机自动获取IP
- PHP获取用户真实 IP , 淘宝IP接口获得ip地理位置
- Linux下自动获取和静态配置IP的方法
- java下linux和window通用的获取指定网段的本地ip地址(NetworkInterface)
- python 获取Linux主机名和IP
- Linux 获取登录者IP
- linux指定ip开放端口
- linux 获取经过N层Nginx转发的访问来源真实IP
- Linux 中获取指定网口的IP地址(c实现)
- linux 获取本机IP通用命令