The iRule solution is unfortunately the only one I believe. <
You could use an iRule that returns this information when you request a certain URL not used by the application;
when LB_SELECTED {
Set variable ‘whichserver’ value to the selected Pool Member IP
set whichserver [LB::server addr]
}
when HTTP_REQUEST {
if { string tolower [HTTP::uri] equals "/whichserver" } {
HTTP::respond 200 content "Real server IP is: $whichserver"
noserver Content-Type "text/html" Connection "Close"
Stop processing the iRule for this event here
return }
}