获取IP MAC MASK Broadcast

#include"stdio.h"
#include"unistd.h"
#include"sys/socket.h"
#include"sys/ioctl.h"
#include"net/if.h"
#include"netinet/in.h"

int main()
{
int sfd;
struct ifconf interface;
struct ifreq ifreq1;
struct sockaddr_in* addr = NULL;
unsigned char mac[6];
unsigned char ip[4];
unsigned char brdaddr[4];
unsigned char netmask[4];

sfd = socket(PF_INET,SOCK_DGRAM,0);
strcpy(ifreq1.ifr_name,"eth0");
ioctl(sfd,SIOCGIFHWADDR,&ifreq1);
memcpy(mac,ifreq1.ifr_hwaddr.sa_data,6);
ioctl(sfd,SIOCGIFADDR,&ifreq1);
addr = (struct sockaddr_in*)&ifreq1.ifr_addr;
*(u_int32_t *)ip = addr -> sin_addr.s_addr;
ioctl(sfd,SIOCGIFBRDADDR,&ifreq1);
*(u_int32_t *)brdaddr = addr -> sin_addr.s_addr;
ioctl(sfd,SIOCGIFNETMASK,&ifreq1);
*(u_int32_t *)netmask = addr -> sin_addr.s_addr;

printf("%X:%X:%X:%X:%X:%X\n",mac[0],mac[1],mac[2],mac[3],\

mac[4],mac[5]);
printf("%d.%d.%d.%d\n",ip[0],ip[1],ip[2],ip[3]);
printf("%d.%d.%d.%d\n",brdaddr[0],brdaddr[1],brdaddr[2],brdaddr[3]);
printf("%d.%d.%d.%d\n",netmask[0],netmask[1],netmask[2],netmask[3]);

return 0;
}

转载于:https://my.oschina.net/allenlu/blog/150

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值