Identifying a Remote Machine.

Pietro Cerutti pietro.cerutti at gmail.com
Sun Jan 14 15:24:54 UTC 2007


On 1/14/07, Grant Peel <gpeel at thenetnow.com> wrote:
> ACtually no,
>
> Sory if the question was vauge,
>
> What I am looking to do is to create a tool that will identify what MACHINE
> (not domain) an ip is being used on.

Check out this:

#include <netinet/in.h>

#include <sys/types.h>
#include <sys/socket.h>

#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>

#define MAX_BUFF 128
#define MAX_NAME 128

int main(int argc, char **argv)
{
   char   buf[MAX_BUFF], name[MAX_NAME];
   int    recv, sock, addrlen;
   struct sockaddr_in addr, from;

   if(argc != 3)
   {
      fprintf(stderr, "usage: %s ip port\n", argv[0]);
      return(1);
   }

   addrlen = sizeof(struct sockaddr);

   /* get hostname */
   bzero(&name, MAX_NAME);
   if(gethostname(name, MAX_NAME) == -1)
   {
      perror("gethostname");
      return(1);
   }

   /* create socket */
   if((sock = socket(PF_INET, SOCK_DGRAM, 0)) == -1)
   {
      perror("socket");
      return(1);
   }

   /* create addres */
   bzero(&addr, addrlen);
   addr.sin_family      = AF_INET;
   addr.sin_port        = htons((int)strtol(argv[2], (char **)NULL, 10));
   if(inet_aton(argv[1], addr.sin_addr) == 0)
   {
      perror("inet_aton");
      return(1);
   }

   /* bind */
   if(bind(sock, (struct sockaddr *)&addr, addrlen) == -1)
   {
      perror("bind");
      return(1);
   }

   /* loop infinitely */
   for(;;)
   {

      /* receive */
      if((recv = recvfrom(sock, buf, MAX_BUFF -1, 0, (struct sockaddr
*)&from, &addrlen)) == -1)
      {
         perror("recvfrom");
         continue;
      }
      buf[recv] = '\0';

      /* send hostname */
      if(sendto(sock, name, MAX_NAME, 0, (struct sockaddr *)&from,
sizeof(struct sockaddr)) == -1)
      {
         perror("sendto");
         continue;
      }
   }

   return(0);

}

>
> -Grant
>
> ----- Original Message -----
> From: "Pietro Cerutti" <pietro.cerutti at gmail.com>
> To: "Grant Peel" <gpeel at thenetnow.com>
> Cc: <freebsd-questions at freebsd.org>
> Sent: Sunday, January 14, 2007 9:21 AM
> Subject: Re: Identifying a Remote Machine.
>
>
> > On 1/14/07, Grant Peel <gpeel at thenetnow.com> wrote:
> >> Hi all,
> > Hello,
> >
> >> The only reply I need from the server is the hostname. That will tell ne
> >> that the IP is live and what machine its on.
> >
> > Wouldn't a ping be enough if you just need to know whether the machine is
> > on?
> >
> >>
> >> -Grant
> >
> >
> > --
> > Pietro Cerutti
> > ICQ: 117293691
> > PGP: 0x9571F78E
> >
> > - ASCII Ribbon Campaign -
> > against HTML e-mail and
> > proprietary attachments
> >   www.asciiribbon.org
> >
> >
>
>
>


-- 
Pietro Cerutti
ICQ: 117293691
PGP: 0x9571F78E

- ASCII Ribbon Campaign -
 against HTML e-mail and
 proprietary attachments
   www.asciiribbon.org


More information about the freebsd-questions mailing list