Experiment No 8 DCOM
#include<stdio.h>
#include<string.h>
char findClass(char str[])
{
char arr[4];
int ip = 0, j = 1;
int i = 0;
while (str[i] != '.')
{
arr[i] = str[i];
i++;
}
i--;
while (i >= 0)
{
ip = ip + (str[i] - '0') * j;
j = j * 10;
i--;
}
// Class A
if (ip >=1 && ip <= 126)
return 'A';
// Class B
else if (ip >= 128 && ip <= 191)
return 'B';
// Class C
else if (ip >= 192 && ip <= 223)
return 'C';
// Class D
else if (ip >= 224 && ip <= 239)
return 'D';
// Class E
else
return 'E';
}
void separate(char str[], char ipClass)
{
char network[12], host[12];
int k;
for ( k = 0; k < 12; k++)
network[k] = host[k] = '\0';
// for class A, only first octet is Network ID
// and rest are Host ID
if (ipClass == 'A')
{
int i = 0, j = 0;
while (str[j] != '.')
network[i++] = str[j++];
i = 0;
j++;
while (str[j] != '\0')
host[i++] = str[j++];
printf("Network ID is %s\n", network);
printf("Host ID is %s\n", host);
}
// for class B, first two octet are Network ID
// and rest are Host ID
else if (ipClass == 'B')
{
int i = 0, j = 0, dotCount = 0;
while (dotCount < 2)
{
network[i++] = str[j++];
if (str[j] == '.')
dotCount++;
}
i = 0;
j++;
while (str[j] != '\0')
host[i++] = str[j++];
printf("Network ID is %s\n", network);
printf("Host ID is %s\n", host);
}
// for class C, first three octet are Network ID
// and rest are Host ID
else if (ipClass == 'C')
{
int i = 0, j = 0, dotCount = 0;
while (dotCount < 3)
{
network[i++] = str[j++];
if (str[j] == '.')
dotCount++;
}
i = 0;
j++;
while (str[j] != '\0')
host[i++] = str[j++];
printf("Network ID is %s\n", network);
printf("Host ID is %s\n", host);
}
// Class D and E are not divided in Network
// and Host ID
else
printf("In this Class, IP address is not"
" divided into Network and Host ID\n");
}
void main()
{
char str[] = "192.226.12.11";
char ipClass = findClass(str);
clrscr();
printf("Given IP address belongs to Class %c\n",ipClass);
separate(str, ipClass);
getch();
}
#include<string.h>
char findClass(char str[])
{
char arr[4];
int ip = 0, j = 1;
int i = 0;
while (str[i] != '.')
{
arr[i] = str[i];
i++;
}
i--;
while (i >= 0)
{
ip = ip + (str[i] - '0') * j;
j = j * 10;
i--;
}
// Class A
if (ip >=1 && ip <= 126)
return 'A';
// Class B
else if (ip >= 128 && ip <= 191)
return 'B';
// Class C
else if (ip >= 192 && ip <= 223)
return 'C';
// Class D
else if (ip >= 224 && ip <= 239)
return 'D';
// Class E
else
return 'E';
}
void separate(char str[], char ipClass)
{
char network[12], host[12];
int k;
for ( k = 0; k < 12; k++)
network[k] = host[k] = '\0';
// for class A, only first octet is Network ID
// and rest are Host ID
if (ipClass == 'A')
{
int i = 0, j = 0;
while (str[j] != '.')
network[i++] = str[j++];
i = 0;
j++;
while (str[j] != '\0')
host[i++] = str[j++];
printf("Network ID is %s\n", network);
printf("Host ID is %s\n", host);
}
// for class B, first two octet are Network ID
// and rest are Host ID
else if (ipClass == 'B')
{
int i = 0, j = 0, dotCount = 0;
while (dotCount < 2)
{
network[i++] = str[j++];
if (str[j] == '.')
dotCount++;
}
i = 0;
j++;
while (str[j] != '\0')
host[i++] = str[j++];
printf("Network ID is %s\n", network);
printf("Host ID is %s\n", host);
}
// for class C, first three octet are Network ID
// and rest are Host ID
else if (ipClass == 'C')
{
int i = 0, j = 0, dotCount = 0;
while (dotCount < 3)
{
network[i++] = str[j++];
if (str[j] == '.')
dotCount++;
}
i = 0;
j++;
while (str[j] != '\0')
host[i++] = str[j++];
printf("Network ID is %s\n", network);
printf("Host ID is %s\n", host);
}
// Class D and E are not divided in Network
// and Host ID
else
printf("In this Class, IP address is not"
" divided into Network and Host ID\n");
}
void main()
{
char str[] = "192.226.12.11";
char ipClass = findClass(str);
clrscr();
printf("Given IP address belongs to Class %c\n",ipClass);
separate(str, ipClass);
getch();
}
Comments
Post a Comment