#include <net/if.h>
#include <sys/ioctl.h>
uint32 get_broadcast(char * interfacename )
{
struct sockaddr_in *addr;
struct ifreq ifr;
int sockfd;
sockfd = socket(AF_INET,SOCK_DGRAM,0);
strncpy(ifr.ifr_name,interfacename,IFNAMSIZ-1);
if(ioctl(sockfd,SIOCGIFADDR,&ifr) == -1)
{
printf("get IP address error!/n");
return false;
}
addr = (struct sockaddr_in *)&(ifr.ifr_addr);
printf("inet addr:%s/n",inet_ntoa(addr->sin_addr));
if(ioctl(sockfd,SIOCGIFBRDADDR,&ifr) == -1)
{
printf("get broadcast address error!/n");
return false;
}
addr = (struct sockaddr_in *)&(ifr.ifr_addr);
printf("broadcast addr:%s/n",inet_ntoa(addr->sin_addr));
}
本文介绍了一个用于获取指定网络接口的广播地址的C语言函数。该函数使用了socket编程,并通过ioctl系统调用获取网络接口的详细信息。首先创建一个套接字,然后通过ioctl获取接口的IP地址和广播地址,最后将广播地址打印出来。

7416

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



