pplacewa@bbn.com (Paul W Placeway) (03/30/91)
I'm stumped. I can't seem to make gethostbyaddr to work right. The
host is in /etc/hosts (which shouldn't even exist, but that's another
issue), AND it's in the YP version of hosts ("ypmatch <num> hosts.byaddr"
works), AND the DNS knows about it. I've tried compiling this tidbit
normally, with -D_BSD_COMPAT and -lbsd, and with -D_BSD_COMPAT, -lsun
-lbsd (to get YP stuff). None of them work. It works fine on our
Suns.
This is on a 4d/240 running Irix 3.3.2.
-- Paul Placeway <pplaceway@bbn.com>
================ cut here ================
#! /bin/sh
# To extract, remove mail header lines and type "sh filename"
echo x - FOO.c
sed -e 's/^X//' > FOO.c << '!FaR!OuT!'
X#include <stdio.h>
X#include <netdb.h>
X#include <sys/types.h>
X#include <sys/socket.h>
X
Xmain(argc, argv)
Xint argc;
Xchar *argv[];
X{
X struct hostent *h;
X char *host_addr;
X long l;
X
X if (sscanf(argv[1], "%ld", &l) != 1)
X exit (1);
X
X host_addr = (char *) &l;
X h = gethostbyaddr (host_addr, sizeof (long), 0);
X if (h == (struct hostent *) 0) {
X#ifdef sun
X printf("h_errno == %d\n", h_errno);
X#else
X herror("gethostbyaddr");
X#endif
X } else {
X printf("%s\n", h->h_name);
X }
X
X exit (0);
X}
X
!FaR!OuT!
exitarc@kaibab.wpd.sgi.com (Andrew Cherenson) (04/04/91)
In article <63465@bbn.BBN.COM> pplacewa@bbn.com (Paul W Placeway) writes: >I'm stumped. I can't seem to make gethostbyaddr to work right. The >host is in /etc/hosts (which shouldn't even exist, but that's another >issue), AND it's in the YP version of hosts ("ypmatch <num> hosts.byaddr" >works), AND the DNS knows about it. I've tried compiling this tidbit >normally, with -D_BSD_COMPAT and -lbsd, and with -D_BSD_COMPAT, -lsun >-lbsd (to get YP stuff). None of them work. It works fine on our >Suns. > >This is on a 4d/240 running Irix 3.3.2. > > -- Paul Placeway <pplaceway@bbn.com> > >================ cut here ================ >#! /bin/sh ># To extract, remove mail header lines and type "sh filename" >echo x - FOO.c >sed -e 's/^X//' > FOO.c << '!FaR!OuT!' >X#include <stdio.h> >X#include <netdb.h> >X#include <sys/types.h> >X#include <sys/socket.h> >X >Xmain(argc, argv) >Xint argc; >Xchar *argv[]; >X{ >X struct hostent *h; >X char *host_addr; >X long l; >X >X if (sscanf(argv[1], "%ld", &l) != 1) >X exit (1); >X >X host_addr = (char *) &l; >X h = gethostbyaddr (host_addr, sizeof (long), 0); >X if (h == (struct hostent *) 0) { >X#ifdef sun >X printf("h_errno == %d\n", h_errno); >X#else >X herror("gethostbyaddr"); >X#endif >X } else { >X printf("%s\n", h->h_name); >X } >X >X exit (0); >X} >X >!FaR!OuT! >exit Change the trailing 0 in the gethostbyaddr call to AF_INET.