|
@@ -466,6 +466,35 @@ char* getip(char *ip_buf)
|
|
|
if(ret < 0)
|
|
|
return NULL;
|
|
|
myaddr = (struct sockaddr_in *)&(temp.ifr_addr);
|
|
|
- strcpy(ip_buf, inet_ntoa(myaddr->sin_addr));
|
|
|
+ strcpy(ip_buf, (char*)inet_ntoa(myaddr->sin_addr));
|
|
|
return ip_buf;
|
|
|
+}
|
|
|
+
|
|
|
+char* getmac(char *mac_buf)
|
|
|
+{
|
|
|
+ struct ifreq temp;
|
|
|
+ struct sockaddr_in *myaddr;
|
|
|
+ int fd = 0;
|
|
|
+ int ret = -1;
|
|
|
+ strcpy(temp.ifr_name, "eth0");
|
|
|
+ if((fd=socket(AF_INET, SOCK_STREAM, 0))<0)
|
|
|
+ {
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
+ if(ioctl(fd,SIOCGIFHWADDR,&temp)<0)
|
|
|
+ {
|
|
|
+ printf("Get mac address ioctl fail!\n");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sprintf(mac_buf, "%02x:%02x:%02x:%02x:%02x:%02x\n",
|
|
|
+ (unsigned char)temp.ifr_hwaddr.sa_data[0],
|
|
|
+ (unsigned char)temp.ifr_hwaddr.sa_data[1],
|
|
|
+ (unsigned char)temp.ifr_hwaddr.sa_data[2],
|
|
|
+ (unsigned char)temp.ifr_hwaddr.sa_data[3],
|
|
|
+ (unsigned char)temp.ifr_hwaddr.sa_data[4],
|
|
|
+ (unsigned char)temp.ifr_hwaddr.sa_data[5]);
|
|
|
+ }
|
|
|
+ close(fd);
|
|
|
+ return mac_buf;
|
|
|
}
|