C@Linux ネットワークアドレスを求める
投稿者:
Aki
投稿日時:2006-10-26 - 18:02:57
カテゴリー:
プログラミング -
トラックバック(No Trackbacks)
かなりgdgdになってしまった。
ビット演算を使うらしい。最後に&だけ使った。
訂正大歓迎(゚ー゚)
======bit_enzan.c======
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//オクテット毎にint配列へ分解
void ad_split(char address[],int result[])
{
int i,j=0,k=0;
char oc[4] = {};
for(i=0;i<16;i++)
{
if(address[i] == '\0')
{
result[j] = atoi(oc);
break;
}
if(address[i] == '.')
{
result[j] = atoi(oc);
j++;
k = 0;
memset(oc,'\0',strlen(oc));
}
else
{
oc[k] = address[i];
k++;
}
}
}
main()
{
int i,j,k,n,tmp_ip[4] = {},tmp_sb[4] = {};
char ip[16] = {},sb[16] = {};
printf("IPアドレスを入力し、Enterを入力してください。[exp:192.168.1.100]\n");
scanf("%s",ip);
printf("サブネットマスクを入力し、Enterを入力してください。[exp:255.255.255.0]\n");
scanf("%s",sb);
printf("IPアドレス:%s,サブネットマスク:%s\n\n",ip,sb);
ad_split(ip,tmp_ip);
ad_split(sb,tmp_sb);
printf("ネットワークアドレス:");
for(n=0;n<4;n++)
{
printf("%d",tmp_ip[n] & tmp_sb[n]);
if(n < 3) printf(".");
}
printf("\n");
}
============
Comments
Add Comments
Trackback
トラックバック
このエントリにトラックバックはありません
この
トラックバックURLを使ってこの記事にトラックバックを送ることができます。
もしあなたのブログがトラックバック送信に対応していない場合には
こちらのフォームからトラックバックを送信することができます。.