linux中获取本机ip和mac地址
来源:互联网 发布:好玩的网络捕鱼游戏 编辑:程序博客网 时间:2024/04/27 11:52
<pre name="code" class="cpp">
#include <sys/socket.h>#include <unistd.h>#include <sys/ioctl.h>#include <stdio.h>#include <arpa/inet.h>#include <net/if.h>#include <netinet/in.h>#include <string.h>#define ETH_NAME "eth0"int main(){ int sock; struct sockaddr_in sin; struct ifreq ifr; unsigned char arp[6] ; sock = socket(AF_INET, SOCK_DGRAM, 0); if (sock == -1) { perror("socket"); return -1; } strncpy(ifr.ifr_name, ETH_NAME, IFNAMSIZ); ifr.ifr_name[IFNAMSIZ - 1] = 0; if (ioctl(sock, SIOCGIFADDR, &ifr) == 0) //获取ip { memcpy(&sin, &ifr.ifr_addr, sizeof(sin)); fprintf(stdout, "eth0: %s\n", inet_ntoa(sin.sin_addr)); } if( ioctl( sock, SIOCGIFHWADDR, &ifr ) == 0 ) //获取mac { memcpy( arp, ifr.ifr_hwaddr.sa_data, 6 ); printf( "adapter hardware address %x:%x:%x:%x:%x:%x\n", arp[0], arp[1], arp[2], arp[3], arp[4], arp[5] ); } return 0;}
ifreq结构头:
struct ifreq { char ifr_name[IFNAMSIZ]; 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;};
编译命令为:
gcc ipget.c -o ipget
0 0
- linux中获取本机ip和mac地址
- Android中获取本机ip地址和MAC地址
- Android中获取本机ip地址和MAC地址
- C#中通过IP获取MAC地址,获取本机IP和MAC地址
- C#中通过IP获取MAC地址,获取本机IP和MAC地址
- java中获取本机IP 本机mac地址
- 通过vbs获取本机IP地址和MAC地址
- delphi 获取本机IP地址和MAC地址
- vbscript获取本机的ip地址和mac地址
- delphi 获取本机IP地址和MAC地址
- Android获取本机ip地址和Mac地址
- 通过vbs获取本机IP地址和MAC地址
- 获取本机mac地址和Ip地址
- 获取本机mac地址和Ip地址
- delphi 获取本机IP地址和MAC地址
- java获取本机的IP地址和mac地址
- Qt 获取本机的IP地址和Mac地址
- 获取本机的IP地址和Mac地址
- Mac OS X上安装配置apache服务器
- ava自带的性能监测工具
- 手机网络制式
- vb.net 动态传参小结
- URAL 1009. K-based Numbers
- linux中获取本机ip和mac地址
- 微信开放JS SDK,这场web巨变意味着什么?
- 交叉编译enca
- 关闭TortoiseSVN的TSVNCache.exe进程方案
- PHP中file_get_contents函数获取带BOM的utf-8,然后json_decode() 返回null的问题
- iOS开发:NSLog使用技巧
- sv中$bitstorealshort() 函数
- 视频学习笔记之 MediaInfo
- Linux内核源码分析--内存管理(一、分页机制)