# include # include # include # include # include # include #
{
Int软盘;
int rc;
结构ifreq IFR;
struct sockaddr_in *sin;
结构延迟rt;
FD=SOCKet(af_inet,sock迷你硬币,0 );
是if(FD0 )
{
perror (套接字错误);
}
短信(IFR,0,sizeof ) IFR );
strcpy(IFR.IFR_name,ifname );
//ipaddr
(if(inet_aton(IPaddr,(sin-sin_addr ) )0) ) ) ) ) ) 652
{
perror(inet_atonerror );
}
if(ioctl(FD,SIOCSIFADDR,ifr )0) )。
{
perror(ioctlsiocsifaddrerror );
}
//net掩码
(if(inet_Aton(mask,(sin-sin_addr ) (0) ) ) ) ) ) ) )。
{
perror(inet_ptonerror );
}
if (ioctl (软盘,SIOCSIFNETMASK,ifr )0) ) )。
{
perror(ioctl );
}
//网关
memset(rt,0,sizeof ) structrtentry );
短信(sin,0,sizeof ) structsockaddr_in );
if (inet _ aton (网关,sin-sin_addr )0) ) ) ) ) )。
{
printf(inet_atonerror(n );
}
memcpy(rt.rt_gateway,sin,sizeof ) structsockaddr_in );
(struct sockaddr_in * ) rt.rt_dst )-sin_family=AF_INET;
(struct sockaddr_in * ) rt.rt_genmask )-sin_family=AF_INET;
rt.rt_flags=RTF_GATEWAY;
if(ioctl(FD,SIOCADDRT,rt )0) ) )。
{
zerror(ioctl ) siocaddrt error inset _ default _ route (n );
关闭(软盘);
}
关闭(软盘);
返回RC;
}