net_util.c
#define WIRED_DEV "eth0"
#define WIRELESS_DEV "ra0"
#define PPPOE_DEV "ppp0"
#define DEBUG_PRT(fmt, arg...) printf(fmt,##arg)
/**
* get ip address.
* @param net_dev net device.
* @param ipaddr a pointer to save ip address.
* @return 0 success, or fail.
*/
int get_ipaddr(const char *net_dev, char *ipaddr)
{
struct ifreq ifr;
int fd = 0;
struct sockaddr_in *pAddr;
if((NULL == net_dev) || (NULL == ipaddr))
{
DEBUG_PRT("illegal call function SetGeneralIP! \n");
return -1;
}
if((fd = socket(AF_INET,SOCK_DGRAM,0)) < 0)
{
DEBUG_PRT("open socket failed \n");
return -1;
}
memset(&ifr,0,sizeof(ifr));
strcpy(ifr.ifr_name, net_dev);
if(ioctl(fd, SIOCGIFADDR, &ifr) < 0)
{
DEBUG_PRT("SIOCGIFADDR socket failed \n");
close(fd);
return -1;
}
pAddr = (struct sockaddr_in *)&(ifr.ifr_addr);
strcpy(ipaddr, inet_ntoa(pAddr->sin_addr));
close(fd);
return 0;
}
/**
* get gateway.
* @param gateway a pointer to save geteway.
* @return none.
*/
void get_gateway(ITI_CHAR *gateway)
{
char buf[1024]={0};
char *p = NULL;
char *q = NULL;
int count = 0;
if(NULL == gateway)
{
DEBUG_PRT("gateway is NULL \n");
return;
}
cmd_run("rou