Sure can.
Assuming you have a VS that's targetted for the SNMP, the iRule would look something like
when CLIENT_ACCEPTED {
if { [IP::client_addr] equals 10.1.1.1 } {
pool appserverpool member appserverip
}
}
Note that the pool command doesn't take into account the poolmember status. If it's down, it'll get used anyway. You can check that from the iRule though.
=So long as the VS recieving the packet doesn't have SNAT enabled, the target will get the original client IP for the forwarded packet.
You can expand the iRule for error handling and things like lookups too (i.e. Lookup in a class/datagroup rather than a hard-coded IP address) if you like. This is just a quickie, no testing, syntax errors are my own etc etc...
See the iRules wiki for reference to lookups in classes.
H