Very simple yet affective http daemon version reply. Makes a simple http connection to the host then head's the version and prints to stdn, simple no? Written by rossex.
0b73d12b01b62b751ef57a035c7e3daa5f085e44089b41fdf5a776994e9a54d7
/* . . h t t p v e r s i o n r e p l y . . */
/* very simple yet affective http daemon version reply. */
/* makes a simple http connection to the host then */
/* head's the version and prints to stdn, simple no? */
/* */
/* greets: packetstorm, for puting up with my friends */
/* email mistakes. (sorry todd) */
/* */
/* code by: rossex */
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <netdb.h>
/* #define coder "rossex" */ /* not feeling like the self promotion mood */
main(int argc, char *argv[])
{
int sock;
struct in_addr addr;
struct sockaddr_in sin;
struct hostent *he;
unsigned long s;
unsigned long c;
char httpd[1024];
if (argc < 2)
{
printf("\n..http version reply..\n");
printf("\n..usage: %s host.. \n",argv[0]);
printf("\n");
exit(0);
}
if ((he=gethostbyname(argv[1])) == NULL)
{
herror("gethostbyname");
exit(0);
}
s=inet_addr(argv[1]);
c=ntohl(s);
sock=socket(AF_INET, SOCK_STREAM, 0);
bcopy(he->h_addr, (char *)&sin.sin_addr, he->h_length);
sin.sin_family=AF_INET;
sin.sin_port=htons(80);
if(connect(sock, (struct sockaddr*)&sin, sizeof(sin))!=0)
{
perror("connect");
}
printf("\n..enter to check http version..\n");
getchar();
printf("\n");
printf("..http status..\n");
send(sock, "HEAD / HTTP/1.0\n\n",20,0);
recv(sock, httpd, sizeof(httpd),0);
printf("%s\n",httpd);
close(sock);
}
/* 2 */