#include <sys/types.h> /* for socket(2) and related bits and pieces */
#include <sys/socket.h> /* for socket(2) */
#include <net/if.h> /* for struct ifreq */
#include <net/if_arp.h> /* for ARPHRD_ETHER */
#include <sys/ioctl.h> /* for IOCTL's */
#include <stdio.h> /* for fprintf etc */
#include <unistd.h> /* for close */
int main(int argc,char **argv)
{
struct ifreq ifr;
int skfd;
if (argc<3) {
fprintf(stderr,"usage:/n%s interface hwaddr/n",argv[1]);
return 1;
}
/* Fill in the structure */
snprintf(ifr.ifr_name, IFNAMSIZ, "%s", argv[1]);
ifr.ifr_hwaddr.sa_family = ARPHRD_ETHER;
/* TODO: write some code to parse argv[2] into ifr.ifr_hwaddr.sa_data */
/* memcpy(&ifr.ifr_hwaddr.sa_data, argv[2],
用ioctl设置mac地址 得到当前的ip地址,子网掩码等信息
最新推荐文章于 2024-06-27 08:00:00 发布
这个程序演示了如何使用ioctl系统调用来设置指定接口的MAC地址,并获取当前的IP地址、子网掩码等网络信息。通过创建一个套接字文件描述符,然后调用ioctl进行操作,包括SIOCSIFHWADDR设置MAC地址,SIOCGIFADDR获取IP地址,SIOCGIFBRDADDR获取广播地址,SIOCGIFNETMASK获取子网掩码。


504

被折叠的 条评论
为什么被折叠?



