In order to check the HTTP request coming in, your best bet is to use the HTTP::collect method, and then do a search on the payload for register... But can you clarify what the body looks like? Will it contain "register xxx.xxx.xxx.xxx" or similar, or are you just wanting to search for "register" and then check the Client IP against a range? Also, instead of checking an excel spreadsheet, you may be better off using a data group that contains your ip ranges, and perform the check against that. SOL3386 talks about data groups.
Regarding the HTTP::collect function, here's an iRule example to get you started.
Collect a request payload
when HTTP_REQUEST {
if {[HTTP::method] eq "POST"}{
Trigger collection for up to 1MB of data
if {[HTTP::header "Content-Length"] ne "" && [HTTP::header "Content-Length"] <= 1048576}{
set content_length [HTTP::header "Content-Length"]
} else {
set content_length 1048576
}
Check if $content_length is not set to 0
if { $content_length > 0} {
HTTP::collect $content_length
}
}
}
when HTTP_REQUEST_DATA {
do stuff with the payload
set payload [HTTP::payload]
}