pkg://fwhois-1.00-8.src.rpm:11803/fwhois-1.00.tar.gz
info downloads
fwhois-1.00/ 2755 0 0 0 5424657235 10705 5 ustar root root fwhois-1.00/Makefile 644 0 0 232 5424623207 12350 0 ustar root root CC =cc
CFLAGS =-O
PROG =fwhois
SOURCE =fwhois.c
STRIP =strip
bsd:
$(CC) $(CFLAGS) -o $(PROG) $(SOURCE)
$(STRIP) $(PROG)
clean:
rm -f core *~ $(PROG)
fwhois-1.00/README 644 0 0 3775 5424623207 11627 0 ustar root root fwhois (finger whois) by Chris Cappuccio <ccappuc@santafe.edu>
Fwhois is a finger-style whois for BSD systems. It is smaller and more
compact then the standard InterNIC whois.c, and also runs in a different
manner. fwhois user@whois.internic.net would be the same as 'whois -h
whois.internic.net user'. This command is espically useful in environments
where different servers are queued, e.g. an organization with multiple
whois servers running for different purposes. This type of command
can also be useful when a user or group of users makes frequent use
of many different whois servers. If a user simply types 'fwhois user'
without a hostname, fwhois will automatically use host whois.internic.net.
Why Did You Write This?
-----------------------
I got bored and also the regular whois.c wasn't compiling under any
version of GCC for me.
Recompiling
-----------
To recomplie, just type: make or make bsd
Notes on Compiling and Included Binaries
----------------------------------------
The compiled fwhois.linux included with this package was compiled using
GCC 2.4.5, libc 4.4.1. The compiled fwhois.sun4 included in this package
was compiled using standard Sun 4 C compiler. This should compile without
any problems on *any* BSD-type machine (SunOS, Linux, Ultrix,
386/NetBSD, etc...) but it was only tested under Linux 0.99.11 and
SunOS 4.1.3. I have also compiled it with success under NetBSD 0.8,
with GCC 1.39. However, I was not able to bring back the binary
because I don't have all of the mtools installed on the NetBSD machine :)
I think this should also compile on SVR4 systems with the
BSD-Compatibility package installed. (P.S.-Yes, I know Linux isn't
a 'bsd-type machine', but fwhois compiles just as easy under Linux
as under SunOS or any other BSD-type system)
Other Notes
-----------
This program comes with no manual pages, because I am not exactily
compelled to make them, but if you have any enhancements or something
you did to make fwhois better, please send the modified fwhois.c to
ccappuc@santafe.edu.
--Chris
fwhois-1.00/fwhois.c 644 0 0 11146 5424623207 12421 0 ustar root root /* fwhois.c by Ang3ldust (Chris Cappuccio) <ccappuc@santafe.edu>
* Networking code taken and modified from net.c in the finger source code
*/
/*
* Copyright (c) 1989 The Regents of the University of California.
* All rights reserved.
*
* This code is derived from software contributed to Berkeley by
* Tony Nardo of the Johns Hopkins University/Applied Physics Lab.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#ifndef lint
char copyright[] =
"@(#) Copyright (c) 1989 The Regents of the University of California.\n\
All rights reserved.\n";
#endif /* not lint */
#ifndef lint
static char sccsid[] = "@(#)fwhois.c 1.00 (DQ) 7/26/93";
#endif /* not lint */
#include <sys/param.h>
#include <sys/file.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#include <ctype.h>
main(argc, argv)
char **argv;
int argc;
{
char *stuff, *eleet;
if (argc == 2) {
eleet = argv[1];
/* If no host specified, use whois.internic.net */
if(!index(argv[1],'@')) {
stuff = strcat(eleet,"@whois.internic.net");
eleet = stuff;
}
}
/* If the user entered an invalid argument, here they go */
if (argc != 2) {
printf("usage: fwhois user[@<whois.server>]\n");
exit(1);
}
netfinger(eleet);
}
netfinger(name)
char *name;
{
register FILE *fp;
register int c, lastc;
struct in_addr defaddr;
struct hostent *hp, def;
struct servent *sp;
struct sockaddr_in sin;
int s;
char *alist[1], *host, *rindex();
u_long inet_addr();
if (!(host = rindex(name, '@')))
return;
*host++ = NULL;
if (!(hp = gethostbyname(host))) {
defaddr.s_addr = inet_addr(host);
if (defaddr.s_addr == -1) {
(void)fprintf(stderr,
"fwhois: unknown host: %s\n",host);
return;
}
def.h_name = host;
def.h_addr_list = alist;
def.h_addr = (char *)&defaddr;
def.h_length = sizeof(struct in_addr);
def.h_addrtype = AF_INET;
def.h_aliases = 0;
hp = &def;
}
if (!(sp = getservbyname("whois", "tcp"))) {
(void)fprintf(stderr, "fwhois: tcp/whois: unknown service\n");
return;
}
sin.sin_family = hp->h_addrtype;
bcopy(hp->h_addr, (char *)&sin.sin_addr, hp->h_length);
sin.sin_port = sp->s_port;
if ((s = socket(hp->h_addrtype, SOCK_STREAM, 0)) < 0) {
perror("fwhois: socket");
return;
}
/* have network connection; identify the host connected with */
(void)printf("[%s]\n", hp->h_name);
if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
perror("fwhois: connect");
(void)close(s);
return;
}
/* send the name followed by <CR><LF> */
(void)write(s, name, strlen(name));
(void)write(s, "\r\n", 2);
if (fp = fdopen(s, "r"))
while ((c = getc(fp)) != EOF) {
c &= 0x7f;
if (c == 0x0d) {
c = '\n';
lastc = '\r';
} else {
if (!isprint(c) && !isspace(c))
c |= 0x40;
if (lastc != '\r' || c != '\n')
lastc = c;
else {
lastc = '\n';
continue;
}
}
putchar(c);
}
if (lastc != '\n')
putchar('\n');
(void)fclose(fp);
}
fwhois-1.00/fwhois.sun4 755 0 0 40000 5424623207 13062 0 ustar root root @D* @
"x b @
@ @ # @ @ h/ ( "@ K \@ K O ^a K `dh / H @ 4 d @ + / t "@ # h / H @ p#|## b# ax# `d# | G
@ /usr/lib/ld.so /dev/zero crt0: no /usr/lib/ld.so
&crt0: /usr/lib/ld.so mapping failure
crt0: no /dev/zero
? c'D'HD H 'H @@ q
b @ l ''D` "@ d @ U @ ? c`'DD @@ W 'Ā J * Ē`'@ L ' ! @ H '? # b9@ ? - ''8''"