int GetIPAddressCfg( char * iface, unsigned int *ip, unsigned int *mask ,unsigned int *gwip)
{
struct ifreq ifr;
struct sockaddr_in *pInetAddr;
int socfd = 0;
unsigned int Gateway = 0;
socfd = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
if( socfd < 0 )
{
debug_print_ipv4_priv("create socker fd error ! \n");
goto ERR;
}
strcpy( (char *)ifr.ifr_name, iface );
// get ip
if( ioctl( socfd, SIOCGIFADDR, &ifr ) < 0 )
{
debug_print_ipv4_priv("get ip addr error ! \n");
goto ERR;
}
pInetAddr = ( struct sockaddr_in * )&(ifr.ifr_addr);
*ip = pInetAddr->sin_addr.s_addr;
// get netmask
if( ioctl(socfd, SIOCGIFNETMASK, &ifr) < 0 )
{
debug_print_ipv4_priv("get netmask error ! \n");
goto ERR;
}
pInetAddr = ( struct sockaddr_in * )&(ifr.ifr_netmask);
*mask = pInetAddr->sin_ad
获取嵌入式linux的ip地址和mask地址和网关
最新推荐文章于 2023-04-01 17:10:11 发布