⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eth.c

📁 获取本机外网IP
💻 C
字号:
#include <stdio.h> 
#include <string.h>
#include <stdlib.h> 
#include <errno.h> 
#include <sys/types.h> 
#include <sys/ioctl.h> 
#include <net/if.h> 
#include <netinet/ether.h> 

int main(int argc, char **argv) 
{ 
        int nSocket,i; 
        struct ifreq struReq; 
        
        char mess[50];
       char *mac_addr=mess;
        nSocket = socket(PF_INET,SOCK_STREAM,0); 

        memset(&struReq,0,sizeof(struReq)); 
        if(argc < 2) 
                strncpy(struReq.ifr_name, "eth0", sizeof(struReq.ifr_name)); 
        else 
                strncpy(struReq.ifr_name, argv[1], sizeof(struReq.ifr_name)); 
        ioctl(nSocket,SIOCGIFHWADDR,&struReq); 
        fprintf(stderr, "%d-%s\n", __LINE__, strerror(errno)); 

        //printf("%s\n", ether_ntoa(struReq.ifr_hwaddr.sa_data)); 
        ether_ntoa(struReq.ifr_hwaddr.sa_data);
        //sprintf(mess,"%s",ether_ntoa(struReq.ifr_hwaddr.sa_data));
        printf("%s\n",mac_addr);
        //strupr(mac_addr);
        for(i=0;i<strlen(mac_addr);i++)
        {
        	if((mac_addr[i]>=97)&&(mac_addr[i]<=122))
        		mac_addr[i]-=32;
        //toupper(mac_addr[i]);
        printf("%c\n",mac_addr[i]);
      }
        printf("%s\n",mac_addr);
        close(nSocket); 
} 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -