Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

Re^3: Wildcard usage for REMOTE_ADDR comparison

by lostcoder (Initiate)
on Oct 20, 2012 at 23:35 UTC ( #1000158=note: print w/ replies, xml ) Need Help??

in reply to Re^2: Wildcard usage for REMOTE_ADDR comparison
in thread Wildcard usage for REMOTE_ADDR comparison

So... if ($ENV{REMOTE_ADDR} eq '') { works as if ($ENV{REMOTE_ADDR} =~ /^180\.0?76\.0{0,2}6\.\d{1,3}$/) { what would a wild card for : if ($ENV{REMOTE_ADDR} eq '180.76.6.') { and if ($ENV{REMOTE_ADDR} eq '180.76.') { look like ?
Sorry if the question sounds so noobish, but the use of wildcards for this particular circumstance is beating up my brain. Technically all I am trying to do is put some code in to my program to keep out various IPs that are able to run my progs in the cgi-bin directory EVEN though their IP is totally banned in the .htaccess file. God only knows why the cgi-bin directory does not benefit from the same protection as all other directories under the .htaccess file as it leaves the progs open to abusive bandwidth consumption.
Comment on Re^3: Wildcard usage for REMOTE_ADDR comparison
Download Code
Replies are listed 'Best First'.
Re^4: Wildcard usage for REMOTE_ADDR comparison
by NetWallah (Abbot) on Oct 21, 2012 at 14:49 UTC
    The "eq" does not work the same as regular expression pattern matching. The latter is much more powerful.

    Your question:

    what would a wild card for :
    if ($ENV{REMOTE_ADDR} eq '180.76.6.') {
    is not specific enough. The answer depends on what you want to match against.
    For example, to match any digits (actually, between 1 and 3 digits) after the last ".", but require the initial 3 octets to be identical to what is specified, use:
    if ($ENV{REMOTE_ADDR} =~/180\.76\.6\.\d{1,3}/) {
    My previous post shows a somewhat more flexible regular expression that allows but does not require leading zeros in an octet.

    However, as afoken (++) pointed out, this may be too much flexibility if the value you are checking for comes from a "trusted" source, like the CGI module.

                 "By three methods we may learn wisdom: First, by reflection, which is noblest; Second, by imitation, which is easiest; and third by experience, which is the bitterest."           -Confucius

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1000158]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (10)
As of 2016-05-25 18:06 GMT
Find Nodes?
    Voting Booth?