I often find myself logging in to the web UI of F5 BigIp load balancers and tracing down a VIP address to the servers that actually back it. This is an arduous, repetitive task of tracing from the VIP list to the VIP details page to find the default pool, then matching up that in the pool list and checking the pool members page. Luckily, the F5 boxes have a web service API that can be used for tasks like this. They have GPL sample code in Perl that uses only SOAP::Lite (as well as Getopt::Long and Pod::Usage) to interact with an F5 BigIp. I wrote a simple script to trace a VIP to the appropriate internal pool member addresses, assuming you have a simple configuration of VIP -> Single default pool -> pool members.
Usage is quite simple:
> ./VipToInternalHosts.pl --host=prod-lb1.example.com --user=myname --pass=mypassword --vip=18.104.22.168:80 VIP 22.214.171.124:80 (f5_vip_name) -> Pool 'pool_name' Members of Pool 'pool_name': 10.145.15.10:80 10.145.15.11:80
The code can be found at https://github.com/jantman/misc-scripts/blob/master/VipToInternalHosts.pl. I hope it’s of use to someone else as well.