分类: 系统运维
2007-11-08 13:00:16
这是半年前写的程序……一直扔在我的百度博客里,今天回去清理的时候发现的。
本来是学交换机的时候,写给班里不会计算的同学用的,今天复习交换机的时候我才突然想起来,我还写过这玩意儿,送给大家玩玩。
功能:
B: 将IP或MASK转换为二进制察看。
S: 通过IP和MASK计算所在网段(支持变长掩码)
void bfun()
{int ip[4];
int i,j,num[8];
printf("\nInput your IP or Mask: ");
scanf("%i.%i.%i.%i",&ip[0],&ip[1],&ip[2],&ip[3]);
printf("\n");
for(i=0;i<=3;i++)
{ for(j=0;j<=7;j++)
{if(ip[i]==1)
{num[j++]=1;
for(;j<=7;j++)
{num[j]=0;
}
break;
}
num[j]=ip[i]%2;
ip[i]/=2;
}
for(j=7;j>=0;j--)
printf("%i",num[j]);
if(i<3)
printf(".");
else
printf("\n");
}
}
void sfun()
{int i,ip[4],m[4];
printf("Input your IP address : ");
scanf("%i.%i.%i.%i",&ip[0],&ip[1],&ip[2],&ip[3]);
printf("Input your Subnet Mask : ");
scanf("%i.%i.%i.%i",&m[0],&m[1],&m[2],&m[3]);
for(i=0;i<=3;i++)
{ip[i]=ip[i]&m[i];
}
printf("Your Network Segment is:\n\t\t\t %i.%i.%i.%i\n",ip[0],ip[1],ip[2],ip[3]);
}
#include
main()
{
for(;;)
{char i[2];
printf("\n\n\n----------------------------------------\n");
printf("B Decimal -> Binary\nS to view your Network Segment\nQ to Quit\n");
printf("Which do you want :");
scanf("%s",i);
switch(i[0])
{case 'B':
case 'b':
bfun();
break;
case 'S':
case 's':
sfun();
break;
case 'Q':
case 'q':
goto L1;
break;
default:
printf("\nInput error !!\n\n");
break;
}
printf("----------------------------------------\n");
}
L1:
return 0;
}
代码放在这里了,想要的人自己去编译吧。