sub dnsResolve {
my ($host) = @_;
return unless isResolvable($host);
return inet_ntoa(inet_aton($host));
}
##############################################################################
#
# myIpAddress - PAC command to get your IP.
#
##############################################################################
sub myIpAddress {
return inet_ntoa(inet_aton(hostname()));
}
##############################################################################
#
# dnsDomainLevels - PAC command to tell how many domain levels there are in
# the host name (number of dots).
#
##############################################################################
sub dnsDomainLevels {
my ($host) = @_;
my $count = 0;
foreach my $piece (split(/(\.)/,$host)) {
$count++ if ($piece eq ".");
}
return $count;
}
##############################################################################
#
# shExpMatch - PAC command to see if a URL/path matches the shell expression.
# Shell expressions are like */foo/* or http://*.
#
##############################################################################
sub shExpMatch {
my ($str,$shellExp) = @_;
$shellExp =~ s/\//\\\//g;
$shellExp =~ s/\*/\.\*/g;
return (($str =~ /$shellExp/) ? 1 : 0);
}
##############################################################################
#
# weekDayRange - PAC command to see if the current weekday falls within a
# range.
#
##############################################################################
sub weekDayRange {
my $wd1 = shift;
my $wd2 = "";
$wd2 = shift if ($_[0] ne "GMT");
my $gmt = "";
$gmt = shift if ($_[0] eq "GMT");
my %wd = ( SUN=>0,MON=>1,TUE=>2,WED=>3,THU=>4,FRI=>5,SAT=>6);
my $dow = (($gmt eq "GMT") ? (gmtime)[6] : (localtime)[6]);
if ($wd2 eq "") {
return (($dow eq $wd{$wd1}) ? 1 : 0);
} else {
my @range;
if ($wd{$wd1} < $wd{$wd2}) {
@range = ($wd{$wd1}..$wd{$wd2});
} else {
@range = ($wd{$wd1}..6,0..$wd{$wd2});
}
foreach my $tdow (@range) {
return 1 if ($dow eq $tdow);
}
return 0;
}
return 0;
}
##############################################################################
#
# dateRange - PAC command to see if the current date falls within a range.
#
##############################################################################
sub dateRange {
my %mon = ( JAN=>0,FEB=>1,MAR=>2,APR=>3,MAY=>4,JUN=>5,JUL=>6,AUG=>7,SEP=>8,OCT=>9,NOV=>10,DEC=>11);
my %args;
my $dayCount = 1;
my $monCount = 1;
my $yearCount = 1;
while ($#_ > -1) {
if ($_[0] eq "GMT") {
$args{gmt} = shift;
=5= |