i like Kevin's idea.
[root@ve10:Active] config b rule myrule list
rule myrule {
when RULE_INIT {
set hostname "f5.com"
set lhostname [split $hostname "."]
set suffix [lindex $lhostname [expr {[llength $lhostname] - 1}]]
set host [lindex $lhostname [expr {[llength $lhostname] - 2}]]
set prefix [lindex $lhostname [expr {[llength $lhostname] - 3}]]
for {set i [expr {[llength $lhostname] - 4}]} {$i >= 0} {incr i -1} {
set prefix "[lindex $lhostname $i].$prefix"
}
log local0. "hostname=$hostname | prefix=$prefix | host=$host | suffix=$suffix"
set hostname "www.f5.com"
set lhostname [split $hostname "."]
set suffix [lindex $lhostname [expr {[llength $lhostname] - 1}]]
set host [lindex $lhostname [expr {[llength $lhostname] - 2}]]
set prefix [lindex $lhostname [expr {[llength $lhostname] - 3}]]
for {set i [expr {[llength $lhostname] - 4}]} {$i >= 0} {incr i -1} {
set prefix "[lindex $lhostname $i].$prefix"
}
log local0. "hostname=$hostname | prefix=$prefix | host=$host | suffix=$suffix"
set hostname "xxx.yyy.f5.com"
set lhostname [split $hostname "."]
set suffix [lindex $lhostname [expr {[llength $lhostname] - 1}]]
set host [lindex $lhostname [expr {[llength $lhostname] - 2}]]
set prefix [lindex $lhostname [expr {[llength $lhostname] - 3}]]
for {set i [expr {[llength $lhostname] - 4}]} {$i >= 0} {incr i -1} {
set prefix "[lindex $lhostname $i].$prefix"
}
log local0. "hostname=$hostname | prefix=$prefix | host=$host | suffix=$suffix"
}
}
[root@ve10:Active] config tail -f /var/log/ltm
Oct 12 19:58:52 local/ve10 err mcpd[3815]: 01020066:3: The requested rule (myrule) already exists in partition Common.
Oct 12 19:58:52 local/tmm info tmm[7926]: Rule myrule : hostname=f5.com | prefix= | host=f5 | suffix=com
Oct 12 19:58:52 local/tmm info tmm[7926]: Rule myrule : hostname=www.f5.com | prefix=www | host=f5 | suffix=com
Oct 12 19:58:52 local/tmm info tmm[7926]: Rule myrule : hostname=xxx.yyy.f5.com | prefix=xxx.yyy | host=f5 | suffix=com