(2,1,1,1,1,1);
use vars qw/
$DirLock $DirCgi $DirData $DirIcons $DirLang $AWScript $ArchiveFileName
-$HTMLHeadSection $HTMLEndSection $LinksToWhoIs
+$AllowAccessFromWebToFollowingIPAddresses $HTMLHeadSection $HTMLEndSection $LinksToWhoIs
$LogFile $LogFormat $LogSeparator $Logo $LogoLink $StyleSheet $WrapperScript $SiteDomain
/;
($DirLock, $DirCgi, $DirData, $DirIcons, $DirLang, $AWScript, $ArchiveFileName,
-$HTMLHeadSection, $HTMLEndSection, $LinksToWhoIs,
+$AllowAccessFromWebToFollowingIPAddresses, $HTMLHeadSection, $HTMLEndSection, $LinksToWhoIs,
$LogFile, $LogFormat, $LogSeparator, $Logo, $LogoLink, $StyleSheet, $WrapperScript, $SiteDomain)=
-("","","","","","","","","","","","","","","","","","");
+("","","","","","","","","","","","","","","","","","","");
use vars qw/
$color_Background $color_TableBG $color_TableBGRowTitle
$color_TableBGTitle $color_TableBorder $color_TableRowTitle $color_TableTitle
foreach my $elem (split(/\s+/,$value)) { push @AllowAccessFromWebToFollowingAuthenticatedUsers,$elem; }
next;
}
+ if ($param =~ /^AllowAccessFromWebToFollowingIPAddresses/) { $AllowAccessFromWebToFollowingIPAddresses=$value; next; }
if ($param =~ /^CreateDirDataIfNotExists/) { $CreateDirDataIfNotExists=$value; next; }
if ($param =~ /^SaveDatabaseFilesWithPermissionsForEveryone/) { $SaveDatabaseFilesWithPermissionsForEveryone=$value; next; }
if ($param =~ /^PurgeLogFile/) { $PurgeLogFile=$value; next; }
sleep 10;
}
+#--------------------------------------------------------------------
+# Function: Convert an IPAddress into an integer
+# Parameters: IPAddress
+# Input: None
+# Output: None
+# Return: Int
+#--------------------------------------------------------------------
+sub Convert_IP_To_Decimal()
+{
+ my ($IPAddress) = @_;
+ my @ip_seg_arr = split(/\./,$IPAddress);
+ my $decimal_ip_address = 256 * 256 *256 * $ip_seg_arr[0] + 256 * 256 * $ip_seg_arr[1] + 256 * $ip_seg_arr[2] + $ip_seg_arr[3];
+ return($decimal_ip_address);
+}
+
#--------------------------------------------------------------------
# MAIN
}
}
}
+if ($AllowAccessFromWebToFollowingIPAddresses && $ENV{"GATEWAY_INTERFACE"}) {
+ if ($AllowAccessFromWebToFollowingIPAddresses !~ /^(\d+\.\d+\.\d+\.\d+)-(\d+\.\d+\.\d+\.\d+)$/) {
+ error("Error: AllowAccessFromWebToFollowingIPAddresses is defined to '$AllowAccessFromWebToFollowingIPAddresses' but does not match the correct syntax: IPAddressMin-IPAddressMax");
+ }
+ my $ipmin=&Convert_IP_To_Decimal($1);
+ my $ipmax=&Convert_IP_To_Decimal($2);
+ my $useripaddress=&Convert_IP_To_Decimal($ENV{"REMOTE_ADDR"});
+ if ($useripaddress < $ipmin || $useripaddress > $ipmax) {
+ error("Error: Access to statistics is not allowed from your IP Address ".$ENV{"REMOTE_ADDR"});
+ }
+}
if ($UpdateStats && (! $AllowToUpdateStatsFromBrowser) && $ENV{"GATEWAY_INTERFACE"}) {
error("Error: Update of statistics is not allowed from a browser.");
}