cancel
Showing results for 
Search instead for 
Did you mean: 

iRule with HTTP::request and datagroup

Thiago_Morais
Altostratus
Altostratus

Hi Guys,

 

I need to create an iRule that will check two conditions:

 

1) HTTP::request contain a specific word "test"

2) The source IP is a member of the Datagroup

 

I would like to create an iRule using only one if statement (one line) to check both conditions above?

 

Thanks in advance

4 REPLIES 4

Here, you can use logical AND operator to check both conditions and if both are fulfilled, set required actions.

Below is IF statement for your reference.

 

if { ([HTTP::host] contains "test") && ([class match [IP::client_addr] equals Allow-List]) }

Hope it helps!

 

Add string tolower functions may help here.

Thiago_Morais
Altostratus
Altostratus

I can use this irule inside a HTTP_REQUEST event? The HTTP_REQUEST event allows me to check the client IP address in datagroup?

Yes it should! I tested below iRule on my lab setup and it is working fine. You can try your iRule using above IF Statement and test.

when HTTP_REQUEST {   if {([HTTP::host] contains "test") && ([class match [IP::client_addr] equals Allow-List])} { pool TEST-Pool log local0. "Allowed client IP is [IP::client_addr]" } else { log local0. "Dropped IP is [IP::client_addr]" } }

Hope it helps!