[6328] in Perl-Users-Digest
Perl-Users Digest, Issue: 950 Volume: 7
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Fri Feb 14 14:27:19 1997
Date: Fri, 14 Feb 97 11:01:33 -0800
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)
Perl-Users Digest Fri, 14 Feb 1997 Volume: 7 Number: 950
Today's topics:
PROGRAM: how to check for nice/valid email address <tchrist@mox.perl.com>
Re: Randal trashed yet again--*sigh* (Clinton Pierce)
Re: Randal trashed yet again--*sigh* (I R A Aggie)
Re: Randal trashed yet again--*sigh* <philip@remove.crl.com>
Re: Repost: Perl/SNMP mib load problem <gmarzot@baynetworks.com>
Re: Simple simple question (Ken Williams)
Re: upper to lowercase replace <osborri@mail.northgrum.com>
Vacancy consultant/trainer <brianasteene@unn.unisys.com>
Re: Very memory-intensive Perl script can not exit (Kjetil Skotheim)
Digest Administrivia (Last modified: 8 Jan 97) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: 14 Feb 1997 18:27:36 GMT
From: Tom Christiansen <tchrist@mox.perl.com>
Subject: PROGRAM: how to check for nice/valid email address
Message-Id: <5e2aqo$3km$1@csnews.cs.colorado.edu>
Here's a program checks to make sure that you've been given a reasonably
decent email address. It stops most goofs and spoofs, and annoys a *lot*
of people. I use it in, well, various places. It's one of those things
that is just going to get me talked about. :-)
--tom
#!/bin/sh
# This is a shell archive (produced by GNU sharutils 4.2).
# To extract the files from this archive, save it to some FILE, remove
# everything before the `!/bin/sh' line above, then type `sh FILE'.
#
# Made on 1997-02-14 11:25 MST by <tchrist@jhereg.perl.com>.
# Source directory was `/tmp'.
#
# Existing files will *not* be overwritten unless `-c' is specified.
#
# This shar contains:
# length mode name
# ------ ---------- ------------------------------------------
# 11143 -rwxr-xr-x ckaddr
#
save_IFS="${IFS}"
IFS="${IFS}:"
gettext_dir=FAILED
locale_dir=FAILED
first_param="$1"
for dir in $PATH
do
if test "$gettext_dir" = FAILED && test -f $dir/gettext \
&& ($dir/gettext --version >/dev/null 2>&1)
then
set `$dir/gettext --version 2>&1`
if test "$3" = GNU
then
gettext_dir=$dir
fi
fi
if test "$locale_dir" = FAILED && test -f $dir/shar \
&& ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
then
locale_dir=`$dir/shar --print-text-domain-dir`
fi
done
IFS="$save_IFS"
if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
then
echo=echo
else
TEXTDOMAINDIR=$locale_dir
export TEXTDOMAINDIR
TEXTDOMAIN=sharutils
export TEXTDOMAIN
echo="$gettext_dir/gettext -s"
fi
touch -am 1231235999 $$.touch >/dev/null 2>&1
if test ! -f 1231235999 && test -f $$.touch; then
shar_touch=touch
else
shar_touch=:
echo
$echo 'WARNING: not restoring timestamps. Consider getting and'
$echo "installing GNU \`touch', distributed in GNU File Utilities..."
echo
fi
rm -f 1231235999 $$.touch
#
if mkdir _sh05854; then
$echo 'x -' 'creating lock directory'
else
$echo 'failed to create lock directory'
exit 1
fi
# ============= ckaddr ==============
if test -f 'ckaddr' && test "$first_param" != -c; then
$echo 'x -' SKIPPING 'ckaddr' '(file already exists)'
else
$echo 'x -' extracting 'ckaddr' '(text)'
sed 's/^X//' << 'SHAR_EOF' > 'ckaddr' &&
#!/usr/bin/perl
#
# addrcheck - mail address checker
# by tchrist@perl.com
# Copyright 1997 Tom Christiansen
# version 1.0 Fri Feb 14 10:49:23 MST 1997
X
####################################
# this program takes an email address as its argument
# and decides whether you're being spoofed or not.
# it exists 0 if it likes the address, and 1 if it doesn't.
#
# can be tested interactively. if not interactive, it will
# use syslog.
#
# should be rewritten instead of just growing via hacks.
####################################
X
$LOGGER = '/usr/bin/logger'; # or /usr/ucb?
$NSLOOKUP = '/usr/bin/nslookup'; # or /usr/ucb?
X
$DEBUG = -t STDIN && -t STDOUT;
$address = shift || die "usage: $0 address\n";
X
for ($address) {
X s/^-+//;
X tr/A-Z/a-z/;
}
X
($user, $host) = split /\@/, $address;
X
# we check in this order because of speed;
# this way it will fail more quickly.
X
check_passwd($user); # picky
check_host($host);
ck822($address); # inscrutable
dns_check($host); # slow
X
Xexit 0;
X
####################################
X
sub bad {
X # GLOBAL $hispass and $what
X if ($DEBUG) {
X print "$what `$hispass' is bad: @_\n";
X } else {
X system $LOGGER,
X "-p", "daemon.notice",
X "-t", "ftpucheck",
X "BOGUS \U$what\E $hispass (@_)";
X }
X exit 1;
}
X
####################################
X
#############
X
sub check_passwd {
X local $what = 'user';
X local $hispass = shift;
X
X for (@rude) {
X bad("rude") if index($hispass, lc $_) != -1;
X }
X
X for (@full) {
X bad("full") if $hispass eq lc $_;
X }
X
X # single char
X bad("single") if length($hispass) == 1;
X
X study $hispass;
X
X bad("dup letters") if $hispass =~ /(\w)\1{3,}/;
X
X bad("white") if $hispass =~ /\s/;
X
X bad("junk") if $hispass =~ /[;,\/#^*]/;
X
X $V = 'aeiouy';
X if ($hispass =~ /netscape/ || $hispass =~ /^m[$V]*[sz]+[$V]*l+[$V]*\W*$/) {
X bad("mozilla");
X }
X
X if ($hispass =~ /xyz+y/) {
X bad("xyzzy");
X }
X
X # all same letter
X bad("dup letters") if $hispass =~ /^(.)\1+$/;
X
X # want letters
X bad("ugly") unless $hispass =~ /[a-z]/;
X
X bad("backspace") if $hispass =~ /[\010\177]/;
X
X $letters = "qwertyuiopasdfghjklzxcvbnmmnbvcxzlkjhgfrdsapoiuytrewq";
X
X # consecutive
X bad("consecutive") if
X length($hispass) > 2 &&
X ( index($letters, $hispass) != -1
X ||
X ($hispass =~ /^(\w+)\1$/ && length($1) > 2
X && index($letters, $1) != -1)
X );
X
X print "$what: $hispass is good\n" if $DEBUG;
X
}
X
X
#############
X
sub check_host {
X local $what = 'host';
X local $hispass = shift;
X
X bad("dotless") unless index($hispass, '.') >= 0;
X
X for (@rude) {
X bad("rude") if index($hispass, lc $_) != -1;
X }
X
X for (@full) {
X bad("full") if $hispass eq lc $_;
X }
X
X # single char
X bad("single") if length($hispass) == 1;
X
X study $hispass;
X
X bad("white") if $hispass =~ /\s/;
X
X bad("junk") if $hispass =~ /[;,\/#^*]/;
X
X # want letters, darnit; this will cause 127.1 to fail though
X bad("ugly") unless $hispass =~ /[a-z]/;
X
X bad("backspace") if $hispass =~ /[\010\177]/;
X
X $letters = "qwertyuiopasdfghjklzxcvbnmmnbvcxzlkjhgfrdsapoiuytrewq";
X
X # consecutive
X bad("consecutive") if
X length($hispass) > 2 &&
X ( index($letters, $hispass) != -1
X ||
X ($hispass =~ /^(\w+)\1$/ && length($1) > 2
X && index($letters, $1) != -1)
X );
X
X print "$what: $hispass is good\n" if $DEBUG;
X
}
X
sub dns_check {
X # first try an MX record, then an A rec (for badly configged hosts)
X
X my $host = shift;
X local $/ = undef;
X local $what = "DNS record";
X local $hispass = $host;
X
X
X # the following is comment out for security reasons:
X # if ( `nslookup -query=mx $host` =~ /mail exchanger/
X # otherwise there could be naughty bits in $host
X # we'll bypass system() and get right at execvp()
X
X if (open(NS, "-|")) {
X if (<NS> =~ /mail exchanger/) {
X print "$what MX: $hispass is good\n" if $DEBUG;
X close NS;
X return;
X }
X } else {
X open(SE, ">&STDERR");
X open(STDERR, ">/dev/null");
X exec $NSLOOKUP, '-query=mx', $host;
X open(STDERR, ">&SE");
X die "can't exec nslookup: $!";
X }
X
X if (open(NS, "-|")) {
X if (<NS> =~ /answer:.*Address/s) {
X print "$what A: $hispass is good\n" if $DEBUG;
X close NS;
X return;
X }
X } else {
X open(SE, ">&STDERR");
X open(STDERR, ">/dev/null");
X exec $NSLOOKUP, '-query=a', $host;
X open(STDERR, ">&SE");
X die "can't exec nslookup: $!";
X }
X
X bad("No DNS");
}
X
X
sub ck822 {
X
X # ck822 -- check whether address is valid rfc 822 address
X # tchrist@perl.com
X #
X # pattern developed in program by jfriedl;
X # see "Mastering Regular Expressions" from ORA for details
X
X # this will error on something like "ftp.perl.com." because
X # even though dns wants it, rfc822 hates it. shucks.
X
X local $what = 'address';
X
X local $hispass = shift;
X local $_;
X
X $is_a_valid_rfc_822_addr = '';
X
X while (<DATA>) {
X chomp;
X $is_a_valid_rfc_822_addr .= $_;
X }
X
X
X bad("rfc822 failure") unless $hispass =~ /^${is_a_valid_rfc_822_addr}$/o;
X print "$what: $hispass is good\n" if $DEBUG;
}
X
##############################
# initializations
##############################
X
BEGIN {
X
X @full = qw{
X
X admin
X anon
X anonymous
X bar
X big-liar
X bin
X bizarre
X bla
X blah
X bogus
X cache
X collect
X compuserve
X cool
X crud
X DeleGateMaster
X devnull
X dialup
X dork
X dummy
X employee
X first1
X foo
X friendly
X ftpsearch-collect
X fu
X god
X guest
X gunk
X gw
X harvest
X here
X hi
X ident
X ident
X ie30user
X info
X internet
X junk
X liar
X login
X lycos
X maxima
X me
X mirror
X mosaic
X nobody
X none
X none-known
X nouser
X ntcon
X ok
X outbound
X postmaster
X president
X public
X Put_Your_Email_Address
X report_abuse
X root
X satan
X socks
X spanky
X src
X sticky
X system
X there
X Unknown_Netscape_User
X Unregistered
X unverified
X user
X UserName
X vice-president
X vividnet
X whoever
X wow
X xyz
X xyz
X
X };
X
X @start = qw{
X
X aaa
X abc
X account
X anon
X anon
X asquid
X daemon
X delegate
X ftp
X gopher
X gotch
X oracle
X otthttp
X pass
X satan
X squid
X student
X test
X web
X xx
X
X };
X
X @anywhere = qw{
X
X adresse
X asdf
X asfd
X cache
X firewall
X -gw
X http
X mail
X mirror
X mother
X name
X nobody
X proxy
X sadf
X system
X user
X www
X
X };
X
X @rude = qw{
X
X asshole
X crap
X cunt
X damn
X fuck
X piss
X shit
X suck
X tits
X upyour
X
X };
X
}
X
# don't touch this stuff down here or you'll break the rfc822 matcher.
__END__
(?:[\040\t]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff]|\((?:[^\\\x80-\xff\n
\015()]|\\[^\x80-\xff])*\))*\))*(?:(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\
xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|"(?:[^\\\x80-\xff\n\015"
]|\\[^\x80-\xff])*")(?:(?:[\040\t]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xf
f]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff])*\))*\))*\.(?:[\040\t]|\((?:[
^\\\x80-\xff\n\015()]|\\[^\x80-\xff]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\
xff])*\))*\))*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;
:".\\\[\]\000-\037\x80-\xff])|"(?:[^\\\x80-\xff\n\015"]|\\[^\x80-\xff])*"))
*(?:[\040\t]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff]|\((?:[^\\\x80-\xff\
n\015()]|\\[^\x80-\xff])*\))*\))*@(?:[\040\t]|\((?:[^\\\x80-\xff\n\015()]|\
\[^\x80-\xff]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff])*\))*\))*(?:[^(\04
0)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-
\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xff])*\])(?:(?:[\040\t]|\((?
:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80
-\xff])*\))*\))*\.(?:[\040\t]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff]|\(
(?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff])*\))*\))*(?:[^(\040)<>@,;:".\\\[\]
\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|\[(?:[^\\
\x80-\xff\n\015\[\]]|\\[^\x80-\xff])*\]))*|(?:[^(\040)<>@,;:".\\\[\]\000-\0
37\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|"(?:[^\\\x80-\xf
f\n\015"]|\\[^\x80-\xff])*")(?:[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\03
7]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff]|\((?:[^\\\x80-\xff\n\015()]|\
\[^\x80-\xff])*\))*\)|"(?:[^\\\x80-\xff\n\015"]|\\[^\x80-\xff])*")*<(?:[\04
0\t]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff]|\((?:[^\\\x80-\xff\n\015()]
|\\[^\x80-\xff])*\))*\))*(?:@(?:[\040\t]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x
80-\xff]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff])*\))*\))*(?:[^(\040)<>@
,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]
)|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xff])*\])(?:(?:[\040\t]|\((?:[^\\
\x80-\xff\n\015()]|\\[^\x80-\xff]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff
])*\))*\))*\.(?:[\040\t]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff]|\((?:[^
\\\x80-\xff\n\015()]|\\[^\x80-\xff])*\))*\))*(?:[^(\040)<>@,;:".\\\[\]\000-
\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\x80-
\xff\n\015\[\]]|\\[^\x80-\xff])*\]))*(?:(?:[\040\t]|\((?:[^\\\x80-\xff\n\01
5()]|\\[^\x80-\xff]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff])*\))*\))*,(?
:[\040\t]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff]|\((?:[^\\\x80-\xff\n\0
15()]|\\[^\x80-\xff])*\))*\))*@(?:[\040\t]|\((?:[^\\\x80-\xff\n\015()]|\\[^
\x80-\xff]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff])*\))*\))*(?:[^(\040)<
>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xf
f])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xff])*\])(?:(?:[\040\t]|\((?:[^
\\\x80-\xff\n\015()]|\\[^\x80-\xff]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\x
ff])*\))*\))*\.(?:[\040\t]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff]|\((?:
[^\\\x80-\xff\n\015()]|\\[^\x80-\xff])*\))*\))*(?:[^(\040)<>@,;:".\\\[\]\00
0-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\x8
0-\xff\n\015\[\]]|\\[^\x80-\xff])*\]))*)*:(?:[\040\t]|\((?:[^\\\x80-\xff\n\
015()]|\\[^\x80-\xff]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff])*\))*\))*)
?(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000
-\037\x80-\xff])|"(?:[^\\\x80-\xff\n\015"]|\\[^\x80-\xff])*")(?:(?:[\040\t]
|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff]|\((?:[^\\\x80-\xff\n\015()]|\\[
^\x80-\xff])*\))*\))*\.(?:[\040\t]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xf
f]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff])*\))*\))*(?:[^(\040)<>@,;:".\
\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|"(?:
[^\\\x80-\xff\n\015"]|\\[^\x80-\xff])*"))*(?:[\040\t]|\((?:[^\\\x80-\xff\n\
015()]|\\[^\x80-\xff]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff])*\))*\))*@
(?:[\040\t]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff]|\((?:[^\\\x80-\xff\n
\015()]|\\[^\x80-\xff])*\))*\))*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff
]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\
]]|\\[^\x80-\xff])*\])(?:(?:[\040\t]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\
xff]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff])*\))*\))*\.(?:[\040\t]|\((?
:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80
-\xff])*\))*\))*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@
,;:".\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xff
])*\]))*(?:[\040\t]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff]|\((?:[^\\\x8
0-\xff\n\015()]|\\[^\x80-\xff])*\))*\))*>)(?:[\040\t]|\((?:[^\\\x80-\xff\n\
015()]|\\[^\x80-\xff]|\((?:[^\\\x80-\xff\n\015()]|\\[^\x80-\xff])*\))*\))*
SHAR_EOF
$shar_touch -am 0214112597 'ckaddr' &&
chmod 0755 'ckaddr' ||
$echo 'restore of' 'ckaddr' 'failed'
shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'ckaddr'`"
test 11143 -eq "$shar_count" ||
$echo 'ckaddr:' 'original size' '11143,' 'current size' "$shar_count!"
fi
rm -fr _sh05854
exit 0
--
Tom Christiansen tchrist@jhereg.perl.com
"The reason you subscribe to a mailing list is you don't get all
the crap you get on netnews. "
--Dennis Ritchie
------------------------------
Date: 14 Feb 1997 14:50:38 GMT
From: cpierce1@cp501.fsic.ford.com (Clinton Pierce)
To: Phil Stripling <philip@crl.com>
Subject: Re: Randal trashed yet again--*sigh*
Message-Id: <5e1u3u$1k83@eccws1.dearborn.ford.com>
In article <5e0dui$3hu@nexp.crl.com>,
Phil Stripling <philip@crl.com> writes:
>Clinton Pierce <cpierce1@cp501.fsic.ford.com> wrote:
>: *sigh* The suits have trashed him yet again. Catch the Feb 3 issue
>: of Fortune Magazine. For God's sake don't buy it! Just catch it
>: online at:
>
>Just out of idle curiousity, is the mention of Randal Schwartz's
>conviction _always_ worth bringing up and publishing world-wide on Usenet
>and rubbing his nose in it for those that didn't read it in the magazine?
>Or is it just something you do for fun?
>
Counting 1...2...3...4...5...6...7...ok, that's enough.
undef %Flame;
Actually, I'm a strong supporter of Randal's, and at every chance,
and in every forum I can, I defend his actions. I've already sent my
letter to FORTUNE about this one...
Randal has PUBLICALLY (Lisa '96) asked that his story be repeated and
spread far and wide so this kind of stuff doesn't happen ever again.
I think this is very noble of him. When I teach System Administration
classes, for example, I preach for a while on the topic of Randal's
conviction ("It Could Happen To You!").
When YOU are unjustly convicted of something due to overzealous
prosecution, politics and poorly written laws we'll make sure to stand
by quietly and not say anything.
--
-----------------------------------------------------------------o------
Clinton A. Pierce | "If you rush a Miracle Man | \ / \ /
cpierce1@ford.com | you get rotten miracles." | \ G /
DCI, Inc. on loan to Ford|--Miracle Max, The Princess Bride| / \ / \
-------------------------------------------------------------Freemason--
Geek Code: GCM/GCSd-(++)s+:+a-C++UA++++$UIS+++$UL+++P++++L++E---W++N++w
---Ot++(+++)5+X+R-tv-b+++DI++++G++e+>++h----r+++y+++(--)>y*
http://www.dcicorp.com/~clintp
------------------------------
Date: Thu, 13 Feb 1997 15:06:49 -0500
From: fl_aggie@hotmail.com (I R A Aggie)
Subject: Re: Randal trashed yet again--*sigh*
Message-Id: <fl_aggie-ya02408000R1302971506490001@news.fsu.edu>
In article <5dvo3r$akd@fridge-nf0.shore.net>, nvp@shore.net (Nathan V.
Patwardhan) wrote:
+ Clinton Pierce (cpierce1@cp501.fsic.ford.com) wrote:
+
+ : http://pathfinder.com/@@yMtBXQUApoF4m2Oe/fortune/1997/970203/eml.html
+
+ Where was Randal mentioned in this article?
Begin quote:
+ Computer attacks can originate anywhere. Even in the age of the
+ globe-girdling Internet, the perp frequently is no farther away than the
+ office next door. At Intel, a technical contractor named Randal Schwartz
+ used his access to company premises to steal a password file from a
+ network server. The file was encrypted, or scrambled, for safety, but
+ Schwartz simply ran a program designed to break the codes. Intel had him
+ arrested before he did any damage.
I'm not a happy camper. Anyone up for some pitchforks & torches and
storming the gates at Intel?
James
--
Consulting Minster for Consultants, DNRC
To cure your perl CGI problems, please look at:
<url:http://www.perl.com/perl/faq/idiots-guide.html>
------------------------------
Date: 14 Feb 1997 16:55:36 GMT
From: Phil Stripling <philip@remove.crl.com>
Subject: Re: Randal trashed yet again--*sigh*
Message-Id: <5e25e8$23m@nexp.crl.com>
Clinton Pierce <cpierce1@cp501.fsic.ford.com> wrote:
>SNIP<
: When YOU are unjustly convicted of something due to overzealous
: prosecution, politics and poorly written laws we'll make sure to stand
: by quietly and not say anything.
That might well be my preference. Randal has also emailed me and stated
that he encourages publication of his story. Obviously, his preference
and mine are different. I stand corrected.
--
Phil Stripling |Sorry to make it difficult to reply
The Civilized Explorer |but you know what needs to be removed
http://www.cieux.com/~philip/
------------------------------
Date: 14 Feb 1997 12:58:17 -0500
From: Joe Marzot <gmarzot@baynetworks.com>
To: Jyoti Patel <jyoti@net.com>
Subject: Re: Repost: Perl/SNMP mib load problem
Message-Id: <pdafp78e2u.fsf@baynetworks.com>
Jyoti Patel <jyoti@net.com> writes:
>
> I posted this a week ago but did not receive any replies
> so here's another try.
>
> I am using Perl 5.003, cmu_snmp2.1.2, SNMP1.6
>
> With this setup, I am trying to write a perl script
> to load a couple of mibs and then to do sets and gets.
> I am experiencing problems in loading two mibs back to
> back. I don't know if Perl can't handle loading of multiple
> mibs or if the mib syntax is a problem.
>
> Can anyone please tell me what's going on. Does Perl require
> it's Mibs to be in one giant file?
First of all I would suggest getting the ucd version of the CMU snmp
toolkit. It has many bug fixes and enhancements *esp.* in the mib parser
- although that is not the problem here I think. In the next release of
SNMP-1.7 for perl5 I plan on relying on several of the fixes provided by
the UCD version.
Now to the problem. The way setMib works, each subsequent call to it has
the effect of loading a completely different mib which must be
complete/error free on its own right. The old mib that was parsed by the
first call would be freed before the next was read in.
Ideally one could *add* mibs at will to the currently parsed mib
tree. Some fixes to in the UCD version may allow this for the next
release of SNMP-1.7 (don't ask me when - sorry). The ucd version may
also allow this *now* from within perl5/SNMP using default mib loading
from well known location or env. var - see the ucd distribution.
-GSM
>
> It loads one mib then I get the following error:
> -----------------------------------------------------------------
> mombasa{jyoti}100: ./test1.pl
> initializing MIB...done
> Use of uninitialized value at /usr/thirdParty/perl/lib/site_perl/SNMP.pm
> line 65.
> initializing MIB...The mib description doesn't seem to be consistent.
> Some nodes couldn't be linked under the "iso" tree.
> these nodes are left:
> <it goes on to list all the attributes defined in the mib. eg>
> ....
> NodeConfigNodeNumber ::= { NodeConfigEntry 2 } (134)
> NodeConfigDomainNumber ::= { NodeConfigEntry 1 } (134)
> NodeConfigTable ::= { node 1 } (14)
> NodeConfigEntry ::= { NodeConfigTable 1 } (1)
> ----------------------------------------------------------------
>
> The Script (test1.pl) is simply:
>
> #!/usr/thirdParty/perl/bin/perl
>
> # required statement
> use SNMP 1.6;
>
> # if mib not autoloaded, set auto_init_mib to 0 and setmib name
> $SNMP::auto_init_mib = 0;
> SNMP::setMib('mibs/generic.mib');
> SNMP::setMib('mibs/nodeConfig.mib');
>
> ---------------------------------------------------------------
>
>
> Any help is greatly appreciated
>
> Thanks
> -- Jyoti
>
> wwwww
> ( @ @ )
> +-+----------------------oOO--(_)--OOo--------------+-+
> |o| Jyoti Patel Phone:(415)780-5717 |o|
> | | N.E.T Fax: (415)780-5001 | |
> | | 800 SAGINAW DRIVE Email:jyoti@net.com | |
> | | REDWOOD CITY, CA 94063 | |
> |o| USA ooo0 0ooo |o|
> +-+-----------------------( )--( )----------------+-+
> \_) (_/
>
--
G. S. Marzot <gmarzot@baynetworks.com> Network Management Development
Bay Networks Inc. (508)670-8888 x63990
--
------------------------------
Date: Fri, 14 Feb 1997 11:34:35 -0500
From: ken@forum.swarthmore.edu (Ken Williams)
Subject: Re: Simple simple question
Message-Id: <ken-1402971134350001@news.swarthmore.edu>
> Joe Schulte wrote:
> >
> > Okay, this is bugging the hell out of me, and it really shouldn't be that
> > hard. Problem is, neither of the books I have tells me how to do it...
> > I'm reading a number from a file. Only thing in the file is that number.
> > No problem. Except when I use 'chop' to read it, it becomes a string. I
> > want to now manipulate this as a number. How? The command must exist -
> > hell, even AppleBASIC had the val()_ command.
> > So, how do I convert a number to a string and vice versa?
> >
Perl does it for you automatically depending on the context. For instance:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$num = "58"; # A string...
$other_num = $num + 67; # turns into a number in a numeric context
$third_num = $num + 5.67;
print ("Numbers: $num, $other_num, $third_num\n");
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
And the output is....
Numbers: 58, 125, 63.67
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This is one of the cool features of Perl - I used it to solve a math
problem once, which was this: find all triples of three digit numbers such
that the sum
of the first two numbers equals the third number, AND each of the digits
1..9 only appear once in the three numbers.
Examples: 783 729
+162 +135
--- ---
945 864
Using Perl's easy transition from integers to strings made the program
that solved this problem pretty easy.
The other cool part of this problem (in case anyone's interested in this
kind of thing around here): what can you say about the sum of the digits
in the answer? For instance, 9+4+5 = 18, and 8+6+4 = 18.
-Ken Williams
ken@forum.swarthmore.edu
------------------------------
Date: 14 Feb 1997 18:11:31 GMT
From: "Rick Osborne" <osborri@mail.northgrum.com>
Subject: Re: upper to lowercase replace
Message-Id: <01bc1aa2$745c9560$1f7fe484@mlbweb>
Michael Paul Stearns <mstearns@darkwing.uoregon.edu> wrote:
>I am trying to do a search and replace that involves changing an
>uppercase character to a lowercase.
> But this doesn't work.
> Any idea what I am doing wrong?
Didja try lc()?
--
_________ o s b o r n e @ g a t e w a y . g r u m m a n . c o m _________
Real programmers don't use LISP. Only effeminate programmers use more
parentheses than actual code.
------------------------------
Date: Fri, 14 Feb 1997 17:21:11 +0000
From: Brian Steene <brianasteene@unn.unisys.com>
Subject: Vacancy consultant/trainer
Message-Id: <33049F07.5880@unn.unisys.com>
The Internet School are looking to recruit an experienced Internet
developer as a consultant/trainer. Check out www.internetschool.com for
package details.
------------------------------
Date: 14 Feb 1997 17:57:26 GMT
From: kjetil.skotheim@usit.uio.no (Kjetil Skotheim)
Subject: Re: Very memory-intensive Perl script can not exit
Message-Id: <5e2926$9m4@ratatosk.uio.no>
In article <33037ED5.41C6@mips.biochem.mpg.de>, frishman@mips.biochem.mpg.de
says...
>
>I am running a perl script which reads from disk the index of a
>relatively big database. The index is stored in a hash
>$hash{ENTRY_ID} = POSITION_IN_FILE;
>Although on the disk the index takes only 2.5. mB, (160000 ID/POS
>pairs), the hash is huge and "top" shows about 35 mB resident size and
>about 55 mB virtual size. However, the program does what I want (e.g.,
>finds and prints an entry from the database) pretty quickly (about 20
>seconds), but then can not exit and is sleeping for a long time (about
>800-1000 seconds). I made sure using the debugger that it happens
>exactly on the exit statement. Apparently something is wrong with
>virtual memory/swaping, but what to do with it? I am using DIGITAl UNIX
>3 on a DEC Alpha Station.
>
>Any advice will be greatly appreciated.
>
Have you looked into the Tie::SubstrHash-module?
It is far less memory wasty on hashes, but it is
5-10 (?) times slower. If you need space more than
speed: try Tie::SubstrHash
However it demands that all your keys and values
are constant length and you must decide max number
of entries in advance.
------------------------------
Date: 8 Jan 97 21:33:47 GMT (Last modified)
From: Perl-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin)
Subject: Digest Administrivia (Last modified: 8 Jan 97)
Message-Id: <null>
Administrivia:
The Perl-Users Digest is a retransmission of the USENET newsgroup
comp.lang.perl.misc. For subscription or unsubscription requests, send
the single line:
subscribe perl-users
or:
unsubscribe perl-users
to almanac@ruby.oce.orst.edu.
To submit articles to comp.lang.perl.misc (and this Digest), send your
article to perl-users@ruby.oce.orst.edu.
To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.
To request back copies (available for a week or so), send your request
to almanac@ruby.oce.orst.edu with the command "send perl-users x.y",
where x is the volume number and y is the issue number.
The Meta-FAQ, an article containing information about the FAQ, is
available by requesting "send perl-users meta-faq". The real FAQ, as it
appeared last in the newsgroup, can be retrieved with the request "send
perl-users FAQ". Due to their sizes, neither the Meta-FAQ nor the FAQ
are included in the digest.
For other requests pertaining to the digest, send mail to
perl-users-request@ruby.oce.orst.edu. Do not waste your time or mine
sending perl questions to the -request address, I don't have time to
answer them even if I did know the answer.
------------------------------
End of Perl-Users Digest V7 Issue 950
*************************************