[comp.unix.questions] nslookup and IP addresses

odin@ucscb.UCSC.EDU (Jon Granrose) (11/28/89)

	Can anyone tell me a reliable way to find the site name associated
with a given IP address?  Example:  say I have address 128.114.133.1 which
happens to be a local machine ssyx.ucsc.edu.  Now if I didn't know that, how
would I figure out the site name short of ftping or telneting, or looking in
HOSTS.TXT?  Anyone?

Thanks,

Jon
-- 
 _____________________________________________________________________________
|Jon Granrose        |ARPA: odin@ucscb.UCSC.EDU   jonathan@sco.com |  // Only |
|Cowell College, UCSC|      74036.3241@compuserve.com              |\X/ Amiga!|
|Santa Cruz, CA 95064|UUCP:..!ucbvax!ucscc!ucscb!odin Bitnet:odin@ucscb.bitnet|
|      "Remember!  No matter where you go, there you are." - B. Banzai        |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

edwin@praxis.cs.ruu.nl (Edwin Kremer) (11/28/89)

In article <6027@lindy.Stanford.EDU> odin@ucscb.UCSC.EDU (Jon Granrose) writes:

  >	Can anyone tell me a reliable way to find the site name associated
  > with a given IP address?  Example:  say I have address 128.114.133.1 which
  > happens to be a local machine ssyx.ucsc.edu.

This is how I usually do it (I don't know if there are
easier ways):

	Set querytype=ptr, reverse the address and add ".in-addr.arpa",
	like this:

	% nslookup
	Server: ...
	Address: ....

	> set q=ptr
	> 1.133.114.128.in-addr.arpa

	1.133.114.128.in-addr.arpa      host name = ssyx.UCSC.EDU

	>



						--[ Edwin ]--

--
Edwin Kremer, Department of Computer Science, University of Utrecht
Padualaan 14,  P.O. Box 80.089,  3508 TB  Utrecht,  The Netherlands
Phone : +31 - 30 - 534104     |     Telefax: +31 - 30 - 513791
E-Mail: edwin@cs.ruu.nl       |     UUCP to: ...!hp4nl!ruuinf!edwin

edwin@praxis.cs.ruu.nl (Edwin Kremer) (11/28/89)

In article <2104@ruuinf.cs.ruu.nl> edwin@cs.ruu.nl (Edwin Kremer) writes:

  > In article <6027@lindy.Stanford.EDU> odin@ucscb.UCSC.EDU (Jon Granrose)
  > writes:
  >  >	Can anyone tell me a reliable way to find the site name associated
  >  > with a given IP address?  Example:  say I have address 128.114.133.1
  >  > which happens to be a local machine ssyx.ucsc.edu.

 To what <edwin@cs.ruu.nl> responds with:

 > This is how I usually do it (I don't know if there are
 > easier ways):

 ... lots of stuff deleted ...

I didn't like my solution that much after all, so I decided to write
a very small C program to solve this problem. I know this is not the
right group to post sources, but I thought it's to small to bother
the comp.sources.unix moderator, so here it is in a shell archive
at the end of this message. Instructions on how to make are in the 
Makefile. I've tried this program on both HP-UX 6.5 (yes, we're
running a nameserver on our HP9000/370) and SunOS 4.0.3 on
an old ;-) Sun 3/60.

		Good luck,
					--[ Edwin ]--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of shell archive."
# Contents:  Makefile iname.c
# Wrapped by edwin@cs.ruu.nl on Tue Nov 28 13:41:10 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'Makefile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Makefile'\"
else
echo shar: Extracting \"'Makefile'\" \(1089 characters\)
sed "s/^X//" >'Makefile' <<'END_OF_FILE'
X###############################################################################
X#	I used this one on HP-UX 6.5
X###############################################################################
XCFLAGS	= +O1
XLDFLAGS	= -L /local/usr/lib/bind -lresolv -lBSD -q -s
X
X###############################################################################
X#	I used this one on SunOS 4.0.3
X###############################################################################
XCFLAGS	= -O
XLDFLAGS	= -lresolv -s
X
X###############################################################################
X#	Change this to whatever you prefer
X###############################################################################
XBIN	= /local/bin
XUSER	= edwin
XGROUP	= staff
XMODE	= 0711
X
X###############################################################################
X#	Shouldn't need to change anything below
X###############################################################################
Xiname	: iname.o
X	$(CC) $? -o $@ $(LDFLAGS)
X
Xinstall	: iname
X	cp $? $(BIN)/$?
X	cd $(BIN) ; chown $(USER) $? ; chgrp $(GROUP) $? ; chmod $(MODE) $?
END_OF_FILE
if test 1089 -ne `wc -c <'Makefile'`; then
    echo shar: \"'Makefile'\" unpacked with wrong size!
fi
# end of 'Makefile'
fi
if test -f 'iname.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'iname.c'\"
else
echo shar: Extracting \"'iname.c'\" \(1002 characters\)
sed "s/^X//" >'iname.c' <<'END_OF_FILE'
X/*
X *	@(#) iname.c	1.0	89/11/28	EHK
X *
X *	iname		- return fully qualified domain name of
X *			  given internet address.
X */
X
X#include <stdio.h>
X#include <sys/types.h>
X#include <sys/socket.h>
X#include <netinet/in.h>
X#include <netdb.h>
X
Xstatic char	*RcsId = "$Header: iname.c,v 1.1 89/11/28 13:16:22 edwin Exp $";
X
Xstatic struct in_addr	in;		/* Internet address structure	*/
Xstatic char		*p;		/* Name of this program		*/
X
Xmain(argc, argv)
X	int	argc;
X	char	*argv[];
X{
X	struct hostent	*he;	/* Host info returned if successful	*/
X	char		*inet;	/* ASCII representation of adress	*/
X
X	p = argv[0];
X
X	if ( argc != 2 )
X		printf("Usage: %s  dot_notation_inet_address\n", p), exit(-1);
X
X	inet = argv[1];			/* Get internet address		*/
X	in.s_addr = inet_addr(inet);	/* network byte order		*/
X
X	he = gethostbyaddr((char *) &in, sizeof(struct in_addr), AF_INET);
X	if ( he == (struct hostent *) 0 )
X		fprintf(stderr, "%s: can't resolve %s\n", p, inet), exit(-1);
X	
X	printf("%s = %s\n", inet, he->h_name);
X
X	exit(0);
X}
END_OF_FILE
if test 1002 -ne `wc -c <'iname.c'`; then
    echo shar: \"'iname.c'\" unpacked with wrong size!
fi
# end of 'iname.c'
fi
echo shar: End of shell archive.
exit 0

--
Edwin Kremer, Department of Computer Science, University of Utrecht
Padualaan 14,  P.O. Box 80.089,  3508 TB  Utrecht,  The Netherlands
Phone : +31 - 30 - 534104     |     Telefax: +31 - 30 - 513791
E-Mail: edwin@cs.ruu.nl       |     UUCP to: ...!hp4nl!ruuinf!edwin

montnaro@sprite.crd.ge.com (Skip Montanaro) (11/28/89)

Craig Leres just posted a program called hf (host filter) to alt.sources. It
maps internet addresses into their equivalent host names.

--
Skip (montanaro@crdgw1.ge.com)