Monday, June 15, 2015

CLIENT TO RESOLVE A GIVEN HOSY NAME FROM DNS SERVER

SERVER SIDE:

#include<stdio.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<arpa/inet.h>
#include<netinet/in.h>
#include<string.h>
#include<netdb.h>
#include<stdlib.h>
#include<unistd.h>
int main()
{
int a,c,clisize,size;
int sersock,newsock,n;
struct sockaddr_in seraddr,clinfo;
char str1[25],str2[100];
char host[25];
struct hostent *hp;
seraddr.sin_family=AF_INET;
seraddr.sin_port=htons(2005);
seraddr.sin_addr.s_addr=htonl(INADDR_ANY);
if((sersock=socket(AF_INET,SOCK_STREAM,0))<0)
{
perror("can not creat Socket");
exit(0);
}
bind(sersock,(struct sockaddr*)&seraddr,sizeof(seraddr));
listen(sersock,5);
clisize=sizeof(clinfo);
if((newsock=accept(sersock,(struct sockaddr*)&clinfo,&size))<0)
{
perror("ACCEPT");
exit(0);
}
printf("\n connected to %s",inet_ntoa(clinfo.sin_addr));
read(newsock,host,sizeof(host));
printf("%s",host);
hp=gethostbyname(host);
inet_ntop(AF_INET,hp->h_addr,str2,sizeof(str2));
printf("%s",str2);
write(newsock,str2,strlen(str2)+1);
close(newsock);
close(sersock);
return 0;
}

CLIENT SIDE:

#include<stdio.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<arpa/inet.h>
#include<netinet/in.h>
#include<unistd.h>
#include<netdb.h>
#include<stdlib.h>
#include<string.h>
int main(int argc,char *argv)
{
int len;
int sockfd,n;
struct sockaddr_in servaddr,cliaddr;
char buff[1024];
char str[1000];
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd<0)
perror("can not create socket");
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_port=htons(2005);
servaddr.sin_family=AF_INET;
servaddr.sin_addr.s_addr=inet_addr("20.30.1.211");

connect(sockfd,(struct sockaddr*)&servaddr,sizeof(servaddr));
{
printf("enter the domain name");
scanf("%s",buff);
n=write(sockfd,buff,1024);
n=read(sockfd,buff,1024);
printf("\n received addr\t %s",buff);
}
close(sockfd);
return 0;
}





OUTPUT:

SERVER SIDE:

"abcser.c" 45L, 1006C written
[ME04@TELNET ~]$ cc abcser.c
[ME04@TELNET ~]$ ./a.out

 connected to 0.0.0.0localhost127.0.0.1

CLIENT SIDE:

"abccli.c" 35L, 774C written
[ME04@TELNET ~]$ cc abccli.c
[ME04@TELNET ~]$ ./a.out
enter the domain name localhost

received addr   127.0.0.1








No comments:

Post a Comment