Chinaunix首页 | 论坛 | 博客
  • 博客访问: 306270
  • 博文数量: 84
  • 博客积分: 5016
  • 博客等级: 大校
  • 技术积分: 900
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-30 20:22
文章分类

全部博文(84)

文章存档

2008年(21)

2007年(63)

我的朋友

分类: 系统运维

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;
}

 

代码放在这里了,想要的人自己去编译吧。

阅读(2530) | 评论(0) | 转发(0) |
0

上一篇:流程控制-循环

下一篇:如何合理利用时间

给主人留下些什么吧!~~