1# GETBODYINFO.RC 2# 3# EXTRACT IP ADDRESSES AND DOMAINS FROM EMAIL MESSAGE BODY 4# 5# This section extracts the IP addresses, hosts domains found in the 6# message body of this email, information that later recipes use. 7# 8# Last updated: 10/14/2016 9 10# EXTRACT BODY AS LOCALBODY 11 12## Reset Initial Variables 13 14LOCALBUFFER='NULL' 15LOCALBODY='NULL' 16LOCALTIMESTAMP=`${DATE} +%s` 17LOCALPID="$$" 18 19:0 bciW: ${SBTEMP}/sbtemp.${TSTAMP}.${LOCALPID}.lock 20| ${HEAD} -400 > ${SBTEMP}/sbtemp.${TSTAMP}.${LOCALPID} 21 22LOCALBODY=`${CAT} "${SBTEMP}/sbtemp.${TSTAMP}.${LOCALPID}" |\ 23 ${SED} -e 's/\([0-9A-Za-z]\.\)=\r\n\([A-Z][a-z]\)/\1 @@@@@\2/g' \ 24 -e 's/\([0-9A-Za-z]\.\)=\n\([A-Z][a-z]\)/\1 @@@@@\2/g' \ 25 -e 's/[=%][0-1][0-9A-F]//g' \ 26 -e 's/\([0-9A-Za-z](\.|\?|!)\)$/\1 /g' \ 27 -e 's/\([=%][0-9A-Fa-f][0-9A-Fa-f]\)$/\1 /g' \ 28 -e 's/=$//g' |\ 29 ${TR} -d '\r' | ${TR} -d '\n'` 30 31LOCALBODY=`${ECHO} "${LOCALBODY}" |\ 32 ${SED} -e 's/@@@@@/\n/g' -e 's/[=%]2[Ee]/\./g' \ 33 -e 's/Content-Type: text\/plain; charset=.*Content-Type: text\/html; charset=/ /g' \ 34 -e 's/Content-ID: <.*>/ /g' \ 35 -e 's/<[Dd][Ii][Vv]( )+[Cc][Ll][Aa][Ss][Ss]( )*=( )*\"preheader\".*<\/[Dd][Ii][Vv]>/ /g' \ 36 -e 's/<[Ss][Tt][Yy][Ll][Ee][^0-9A-Za-z].*<\/[Ss][Tt][Yy][Ll][Ee]>/ /g' \ 37 -e 's/[=%]20/ /g' -e 's/[=%]2[Ff]/\//g' \ 38 -e 's/\([a-z]\)\(http:\/\/\)/\1 \2/g' \ 39 -e 's/\([a-z]\)\(https:\/\/\)/\1 \2/g' \ 40 -e 's/[=%]2[Ee]/\./g' -e 's/�/\./g';\ 41 ${RM} -f ${SBTEMP}/sbtemp.${TSTAMP}.${LOCALPID}` 42 43# GET MESSAGE BODY EMAIL ADDRESSES 44# 45# Get any email addresses in the message body. 46 47### Reset Initial Variables 48 49LOCALBUFFER='NULL' 50LOCALDOMAIN='example.com' 51LOCALEMAIL='noemail@example.com' 52LOCALHOST='host.example.com' 53LOCALIP='000.000.000.000' 54LOCALLOGIN='noemail' 55LOCALREVIP='000.000.000.000' 56LOCALTAG='no' 57 58### Extract the email address 59:0 60* LOCALBODY ?? (^|[^0-9a-z�����������������������������������]|\ 61 [=%](20|3[AaDdFf]|[Aa]0))\/[0-9a-z�����������������������������������]\ 62 [-_0-9a-z�����������������������������������+.]*@\ 63 ([0-9a-z�����������������������������������]\ 64 [-_0-9a-z�����������������������������������]*\.)+(ac|\ 65 academy|actor|ad|ae|aero|af|ag|agency|ai|al|am|an|and�no|ao|aq|\ 66 ar|archi|as|asia|ask�no|associates|at|au|audi|aurskog-h�no|autos|aver�no|\ 67 aw|ax|axa|az|a�ci|ba|bar|bargains|bayern|bb|bd|be|bearalv�no|beer|\ 68 berlev�no|berlin|best|bf|bg|bh|bi|bid|biev�no|bike|biz|bj|bjark�no|\ 69 black|blackfriday|blue|bm|bn|bo|bod�no|boutique|br|br�nn�no|bs|bt|\ 70 budapest|build|builders|business|buzz|bv|bw|by|bz|b�id�no|b�l�no|\ 71 b�no|b�d�ddj�no|b�no|b�no|b�no|ca|cab|camera|camp|capital|caravan|\ 72 cards|career|careers|casa|cat|catering|cc|cd|center|ceo|cf|cg|ch|\ 73 cheap|christmas|ci|ck|cl|cleaning|click|clothing|club|cm|cn|co|codes|\ 74 coffee|college|cologne|com|community|company|computer|\ 75 comunica��museum|condos|construction|consulting|contractors|cooking|\ 76 cool|coop|correios-e-telecomunica��museum|country|cr|cricket|cruises|cu|cv|\ 77 cw|cx|cy|cz|c�no|dance|date|dating|davvenj�no|de|democrat|desi|diamonds|\ 78 directory|dj|dk|dm|dnp|do|domains|download|dr�no|dyr�no|dz|d�no|ec|edu|\ 79 education|ee|eg|email|engineering|enterprises|equipment|er|es|\ 80 estate|et|eu|eus|events|evenᚚno|expert|exposed|faith|farm|feedback|\ 81 fi|finn�no|fish|fishing|fj|fk|flights|florist|flor�no|fl�no|fm|\ 82 fo|foundation|fr|frogans|fr�no|fr�no|futbol|f�no|ga|gal|gallery|\ 83 gb|gd|ge|gf|gg|ggee|gh|gi|gift|gildesk�no|gj�no|gl|glass|globo|\ 84 gm|gn|gop|gov|gp|gq|gr|graphics|gripe|gs|gt|gu|guide|guitars|\ 85 guru|gw|gy|g�\?no|g�ls�no|g�no|haus|her�m�no|her�no|hk|hm|hn|\ 86 hob�no|holdings|holiday|holt�no|homes|horse|house|hr|ht|hu|\ 87 h�mm�no|h�no|h�no|h�no|h�no|id|ie|il|im|immobilien|in|inder�no|\ 88 industries|info|ink|institute|int|international|io|iq|ir|is|\ 89 it|je|jetzt|jm|jo|jobs|jp|j�no|karm�no|kaufen|ke|kg|kh|ki|kim|\ 90 kitchen|kiwi|kl�no|km|kn|koeln|kp|kr|krager�no|krd|kred|kr�no|\ 91 kr�no|kvits�no|kv�no|kw|ky|kz|k�r�no|k�no|la|lacaixa|land|\ 92 langev�no|lb|lc|lea\?no|lease|li|lighting|limo|lind�no|link|lk|\ 93 loab�no|london|lr|ls|lt|lu|lur�no|luxe|luxury|lv|ly|l�no|l�museum|\ 94 l�no|l�no|ma|maison|management|mango|marketing|mc|md|me|media|meet|\ 95 mel�no|menu|mer�no|mg|mh|miami|mil|mini|mj�no|mk|ml|mm|mn|mo|mobi|\ 96 moda|moe|monash|mormon|moscow|mosj�no|motorcycles|mo�no|mp|mq|mr|ms|\ 97 mt|mu|muos�no|museum|mv|mw|mx|my|mz|m�no|m�tta-v�no|m�no|m�s�no|m�no|\ 98 na|nagoya|name|nc|ne|net|network|neustar|nf|ng|ni|ninja|nl|no|np|nr|\ 99 nrw|nu|nyc|nz|n�no|n��no|n�r�no|n�tter�no|okinawa|om|onl|oppeg�no|\ 100 org|oster�no|os�no|otsuka|ovh|pa|partners|parts|party|pe|pf|pg|ph|photo|\ 101 photography|photos|pics|pictures|pink|pk|pl|plumbing|pm|pn|pors�\?no|\ 102 post|pr|praxi|pro|productions|properties|ps|pt|pub|pw|py|qa|qpon|quebec|\ 103 racing|rad�no|re|recipes|red|reisen|ren|rennes�no|rentals|repair|report|rest|\ 104 reviews?|rich|rio|ris�no|ro|rocks|rodeo|rs|ru|ruhr|rw|ryukyu|r�hkker�no|\ 105 r�no|r�no|r�no|r�d�no|r�no|sa|saarland|sandnessj�no|sand�no|sb|sc|science|\ 106 sd|se|services|sexy|sg|sh|shiksha|shoes|si|singles|sj|sk|skierv�no|\ 107 skjerv�no|skj�no|sk�no|sk�no|sl|sm|sm�no|sn|sn�no|so|social|sohu|\ 108 solar|solutions|space|sr|st|stj�no|su|supplies|supply|support|sv|sx|sy|\ 109 systems|sz|s�l�no|s�no|s�no|tattoo|tc|td|technology|tel|tf|tg|th|\ 110 tienda|tips|tj|tj�no|tk|tl|tm|tn|to|today|tokyo|tools|top|town|toys|tp|\ 111 tr|trade|training|tran�no|travel|troms�no|tr�no|tr�no|tt|tv|tw|tysv�no|\ 112 tz|t�no|ua|ug|uk|university|unj�no|uno|us|uy|uz|va|vacations|vads�no|\ 113 vard�no|vc|ve|vegas|veg�no|ventures|vestv�g�no|vg|vi|viajes|villas|\ 114 vision|vn|vodka|vote|voting|voto|voyage|vu|v�rgg�no|v�gs�no|v�g�no|\ 115 v�no|v��no|v�r�no|wang|watch|webcam|wed|wf|wien|wiki|win|work|works|ws|\ 116 wtc|xn--1qqw23a|xn--3bst00m|xn--3ds443g|xn--3e0b707e|xn--45brj9c|\ 117 xn--45q11c|xn--4gbrim|xn--54b7fta0cc|xn--55qw42g|xn--55qx5d|\ 118 xn--6frz82g|xn--6qq986b3x1|xn--80adxhks|xn--80ao21a|xn--80asehdb|\ 119 xn--80aswg|xn--90a3ac|xn--c1avg|xn--cg4bki|xn--clchc0ea0b2g2a9gcd|\ 120 xn--czr694b|xn--czrs0t|xn--czru2d|xn--d1acj3b|xn--fiQ64b|\ 121 xn--fiq228c5hs|xn--fiqs8s|xn--fiqz9s|xn--fpcrj9c3d|xn--fzc2c9e2c|\ 122 xn--gecrj9c|xn--h2brj9c|xn--i1b6b1a6a2e|xn--io0a7i|xn--j1amh|\ 123 xn--j6w193g|xn--kprw13d|xn--kpry57d|xn--l1acc|xn--lgbbat1ad8j|\ 124 xn--mgb2ddes|xn--mgb9awbf|xn--mgba3a4f16a|xn--mgba3a4fra|\ 125 xn--mgbaam7a8h|xn--mgbab2bd|xn--mgbayh7gpa|xn--mgbbh1a71e|\ 126 xn--mgbc0a9azcg|xn--mgberp4a5d4a87g|xn--mgberp4a5d4ar|\ 127 xn--mgbqly7c0a67fbc|xn--mgbqly7cvafr|xn--mgbtf8fl|xn--mgbx4cd0ab|\ 128 xn--ngbc5azd|xn--nnx388a|xn--node|xn--nqv7f|xn--nqv7fs00ema|\ 129 xn--o3cw4h|xn--ogbpf8fl|xn--p1acf|xn--p1ai|xn--pgbs0dh|\ 130 xn--q9jyb4c|xn--rhqv96g|xn--s9brj9c|xn--ses554g|xn--unup4y|\ 131 xn--vhquv|xn--wgbh1c|xn--wgbl6a|xn--xhq521b|xn--xkc2al3hye2a|\ 132 xn--xkc2dl3a5ee0h|xn--yfro4i67o|xn--ygbi2ammx|xn--zfr164b|\ 133 xxx|xyz|yachts|ye|yokohama|yt|za|zip|zm|zone|zw|�k\?no|�lt�no|\ 134 �no|�lg�no|�no|�no)([^0-9a-z�����������������������������������]|$) 135{ 136 LOCALBUFFER=${MATCH} 137 LESKIP1=${LOCALBUFFER} 138 LOCALEMAIL=`${ECHO} ${LOCALBUFFER} | ${SED} -e 's/[^0-9A-Za-z�������������������������������������B������A�A�CCCCD����EEEEEH����II��NN�����،SS�����UUUU�ޟY�]*$//g' | ${TR} '[:upper:]' '[:lower:]'` 139} 140 141:0 142* ! LOCALEMAIL ?? ^noemail@example\.com$ 143{ 144 LOCALLOGIN=`${ECHO} -n ${LOCALEMAIL} | ${SED} -e 's/@.*$//'` 145} 146 147:0 148* LOCALEMAIL ?? ^.*(@|[=%]40)\/.*$ 149{ 150 LOCALHOST=${MATCH} 151} 152 153:0 154* ! LOCALHOST ?? ^host\.example\.com$ 155{ 156 INCLUDERC=${SBDIR}/functions/get-domain.rc 157} 158 159### Assign Variables 160:0 161* ! LOCALEMAIL ?? ^noemail@example\.com$ 162{ 163 FIRSTBODYEMAIL=${LOCALEMAIL} 164 FIRSTBODYLOGIN=${LOCALLOGIN} 165 FIRSTBODYEHOST=${LOCALHOST} 166 FIRSTBODYEDOMAIN=${LOCALDOMAIN} 167 168 ## Canonicalize and hash the First Body email address. 169 170 :0 171 * ! FIRSTBODYEMAIL ?? ^noemail@example.com$ 172 { 173 LOCALLOGIN=${FIRSTBODYLOGIN} 174 LOCALHOST=${FIRSTBODYEHOST} 175 LOCALHASH='NULL' 176 INCLUDERC=${SBDIR}/functions/hash-email.rc 177 FIRSTBODYEHASH=${LOCALHASH} 178 } 179} 180 181# GET MESSAGE BODY HOSTS AND DOMAINS 182# 183# Now, get any hosts and/or domains in the message body. 184 185# EXTRACT FIRST BODY HOST/INFO 186# 187# Extract the first body host, extract domain and lookup 188# IP for host. 189 190:0 191* FIRSTBODYHOST ?? ^host\.example\.com$ 192* B ?? (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)\/([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 193 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 194 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 195 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 196 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 197 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 198 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 199 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 200 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 201 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 202 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 203 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 204 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 205 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 206 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$) 207{ 208 :0 209 { LOCALBUFFER=${MATCH} } 210 211 :0 212 { FIRSTBODYHOST=`${ECHO} "${LOCALBUFFER}" | ${SED} -e 's/[=%]2[Ee]/\./g' -e 's/[^A-Za-z]*$//'` } 213} 214 215# Extract the domain from the first body host. 216:0 217* ! FIRSTBODYHOST ?? ^host\.example\.com$ 218{ 219 LOCALDOMAIN='example.com' 220 LOCALHOST=${FIRSTBODYHOST} 221 INCLUDERC=${SBDIR}/functions/get-domain.rc 222 FIRSTBODYDOMAIN=${LOCALDOMAIN} 223} 224 225# Look up the IP for the first body host. 226:0 227* ! SBCONFIG ?? ^Lite$ 228* ! FIRSTBODYHOST ?? ^host\.example\.com$ 229{ 230 LOCALDOMAIN=${FIRSTBODYDOMAIN} 231 LOCALHOST=${FIRSTBODYHOST} 232 LOCALIP='000.000.000.000' 233 INCLUDERC=${SBDIR}/functions/get-ip.rc 234 FIRSTBODYHOSTIP=${LOCALIP} 235} 236 237# Reverse the IP. 238:0 239* ! SBCONFIG ?? ^Lite$ 240* ! FIRSTBODYHOSTIP ?? ^000\.000\.000\.000$ 241{ 242 LOCALIP=${FIRSTBODYHOSTIP} 243 INCLUDERC=${SBDIR}/functions/reverseip.rc 244 FIRSTBODYHOSTREVIP=${LOCALREVIP} 245 INCLUDERC=${SBDIR}/functions/cidrmatch.rc 246 FIRSTBODYHOSTIPREGEXP=${LOCALIPREGEXP} 247} 248 249 250# Extract the second body host and domain. 251# 252:0 253* ! FIRSTBODYHOST ?? ^host\.example\.com$ 254* SECONDBODYHOST ?? ^host\.example\.com$ 255* B ?? (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 256 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 257 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 258 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 259 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 260 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 261 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 262 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 263 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 264 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 265 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 266 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 267 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 268 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 269 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$)\ 270 (.*$)*.*\ 271 (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)\/([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 272 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 273 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 274 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 275 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 276 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 277 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 278 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 279 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 280 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 281 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 282 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 283 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 284 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 285 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$) 286{ 287 :0 288 { LOCALBUFFER=${MATCH} } 289 290 :0 291 { SECONDBODYHOST=`${ECHO} "${LOCALBUFFER}" | ${SED} -e 's/[=%]2[Ee]/\./g' -e 's/[^A-Za-z]*$//'` } 292} 293 294# Extract the domain for the second body host. 295:0 296* ! SECONDBODYHOST ?? ^host\.example\.com$ 297{ 298 LOCALDOMAIN='example.com' 299 LOCALHOST=${SECONDBODYHOST} 300 INCLUDERC=${SBDIR}/functions/get-domain.rc 301 SECONDBODYDOMAIN=${LOCALDOMAIN} 302} 303 304# Look up the IP for the second body host. 305:0 306* ! SBCONFIG ?? ^Lite$ 307* ! SECONDBODYHOST ?? ^host\.example\.com$ 308{ 309 LOCALDOMAIN=${SECONDBODYDOMAIN} 310 LOCALHOST=${SECONDBODYHOST} 311 LOCALIP='000.000.000.000' 312 INCLUDERC=${SBDIR}/functions/get-ip.rc 313 SECONDBODYHOSTIP=${LOCALIP} 314} 315 316# Reverse the IP. 317:0 318* ! SBCONFIG ?? ^Lite$ 319* ! SECONDBODYHOSTIP ?? ^000\.000\.000\.000$ 320{ 321 LOCALIP=${SECONDBODYHOSTIP} 322 INCLUDERC=${SBDIR}/functions/reverseip.rc 323 SECONDBODYHOSTREVIP=${LOCALREVIP} 324 INCLUDERC=${SBDIR}/functions/cidrmatch.rc 325 SECONDBODYHOSTIPREGEXP=${LOCALIPREGEXP} 326} 327 328# Check to see if SECONDBODYHOST is same as FIRSTBODYHOST. 329# If it is, check to see whether FIRSTBODYHOST didn't 330# resolve, but SECONDBODYHOST did. If so, assign IP of 331# SECONDBODYHOST to FIRSTBODYHOST also. (Thwarts DNS 332# tricks some spammers are using.) 333# 334:0 335* ! SBCONFIG ?? ^Lite$ 336* $ SECONDBODYHOST ?? ${FIRSTBODYHOST} 337* FIRSTBODYHOSTIP ?? ^000\.000\.000\.000$ 338* ! SECONDBODYHOSTIP ?? ^000\.000\.000\.000$ 339{ 340 FIRSTBODYHOSTIP=${SECONDBODYHOSTIP} 341 FIRSTBODYHOSTREVIP=${SECONDBODYHOSTREVIP} 342 FIRSTBODYHOSTIPREGEXP=${LOCALIPREGEXP} 343} 344 345 346# Extract the third body host and domain. 347# 348:0 349* ! FIRSTBODYHOST ?? ^host\.example\.com$ 350* ! SECONDBODYHOST ?? ^host\.example\.com$ 351* THIRDBODYHOST ?? ^host\.example\.com$ 352* B ?? (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 353 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 354 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 355 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 356 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 357 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 358 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 359 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 360 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 361 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 362 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 363 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 364 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 365 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 366 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$)\ 367 (.*$)*.*\ 368 (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 369 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 370 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 371 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 372 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 373 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 374 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 375 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 376 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 377 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 378 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 379 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 380 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 381 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 382 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$)\ 383 (.*$)*.*\ 384 (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)\/([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 385 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 386 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 387 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 388 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 389 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 390 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 391 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 392 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 393 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 394 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 395 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 396 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 397 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 398 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$) 399{ 400 :0 401 { LOCALBUFFER=${MATCH} } 402 403 :0 404 { THIRDBODYHOST=`${ECHO} "${LOCALBUFFER}" | ${SED} -e 's/[=%]2[Ee]/\./g' -e 's/[^A-Za-z]*$//'` } 405} 406 407# Extract the domain for the third body host. 408:0 409* ! THIRDBODYHOST ?? ^host\.example\.com$ 410{ 411 LOCALDOMAIN='example.com' 412 LOCALHOST=${THIRDBODYHOST} 413 INCLUDERC=${SBDIR}/functions/get-domain.rc 414 THIRDBODYDOMAIN=${LOCALDOMAIN} 415} 416 417# Look up the IP for the third body host. 418:0 419* ! SBCONFIG ?? ^Lite$ 420* ! THIRDBODYHOST ?? ^host\.example\.com$ 421{ 422 LOCALDOMAIN=${THIRDBODYDOMAIN} 423 LOCALHOST=${THIRDBODYHOST} 424 LOCALIP='000.000.000.000' 425 INCLUDERC=${SBDIR}/functions/get-ip.rc 426 THIRDBODYHOSTIP=${LOCALIP} 427} 428 429# Reverse the IP. 430:0 431* ! SBCONFIG ?? ^Lite$ 432* ! THIRDBODYHOSTIP ?? ^000\.000\.000\.000$ 433{ 434 LOCALIP=${THIRDBODYHOSTIP} 435 INCLUDERC=${SBDIR}/functions/reverseip.rc 436 THIRDBODYHOSTREVIP=${LOCALREVIP} 437 INCLUDERC=${SBDIR}/functions/cidrmatch.rc 438 THIRDBODYHOSTIPREGEXP=${LOCALIPREGEXP} 439} 440 441# Check to see if THIRDBODYHOST is same as FIRSTBODYHOST 442# or SECONDBODYHOST. If it is, check to see whether 443# FIRSTBODYHOST or SECONDBODYHOST didn't resolve, but 444# THIRDBODYHOST did. If so, assign IP of THIRDBODYHOST to 445# FIRSTBODYHOST or SECONDBODYHOST also. (Thwarts DNS 446# tricks some spammers are using.) 447# 448:0 449* ! SBCONFIG ?? ^Lite$ 450* $ THIRDBODYHOST ?? ${FIRSTBODYHOST} 451* FIRSTBODYHOSTIP ?? ^000\.000\.000\.000$ 452* ! THIRDBODYHOSTIP ?? ^000\.000\.000\.000$ 453{ 454 FIRSTBODYHOSTIP=${THIRDBODYHOSTIP} 455 FIRSTBODYHOSTREVIP=${THIRDBODYHOSTREVIP} 456 FIRSTBODYHOSTIPREGEXP=${LOCALIPREGEXP} 457} 458 459:0 460* ! SBCONFIG ?? ^Lite$ 461* $ THIRDBODYHOST ?? ${SECONDBODYHOST} 462* SECONDBODYHOSTIP ?? ^000\.000\.000\.000$ 463* ! THIRDBODYHOSTIP ?? ^000\.000\.000\.000$ 464{ 465 SECONDBODYHOSTIP=${THIRDBODYHOSTIP} 466 SECONDBODYHOSTREVIP=${THIRDBODYHOSTREVIP} 467 SECONDBODYHOSTIPREGEXP=${LOCALIPREGEXP} 468} 469 470 471# Extract the fourth body host and domain. 472# 473:0 474* ! FIRSTBODYHOST ?? ^host\.example\.com$ 475* ! SECONDBODYHOST ?? ^host\.example\.com$ 476* ! THIRDBODYHOST ?? ^host\.example\.com$ 477* FOURTHBODYHOST ?? ^host\.example\.com$ 478* B ?? (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 479 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 480 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 481 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 482 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 483 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 484 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 485 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 486 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 487 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 488 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 489 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 490 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 491 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 492 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$)\ 493 (.*$)*.*\ 494 (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 495 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 496 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 497 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 498 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 499 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 500 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 501 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 502 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 503 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 504 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 505 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 506 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 507 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 508 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$)\ 509 (.*$)*.*\ 510 (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 511 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 512 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 513 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 514 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 515 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 516 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 517 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 518 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 519 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 520 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 521 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 522 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 523 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 524 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$)\ 525 (.*$)*.*\ 526 (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)\/([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 527 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 528 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 529 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 530 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 531 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 532 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 533 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 534 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 535 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 536 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 537 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 538 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 539 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 540 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$) 541{ 542 :0 543 { LOCALBUFFER=${MATCH} } 544 545 :0 546 { FOURTHBODYHOST=`${ECHO} "${LOCALBUFFER}" | ${SED} -e 's/[=%]2[Ee]/\./g' -e 's/[^A-Za-z]*$//'` } 547} 548 549# Extract the domain for the fourth body host. 550:0 551* ! FOURTHBODYHOST ?? ^host\.example\.com$ 552{ 553 LOCALDOMAIN='example.com' 554 LOCALHOST=${FOURTHBODYHOST} 555 INCLUDERC=${SBDIR}/functions/get-domain.rc 556 FOURTHBODYDOMAIN=${LOCALDOMAIN} 557} 558 559# Look up the IP for the fourth body host. 560:0 561* ! SBCONFIG ?? ^Lite$ 562* ! FOURTHBODYHOST ?? ^host\.example\.com$ 563{ 564 LOCALDOMAIN=${FOURTHBODYDOMAIN} 565 LOCALHOST=${FOURTHBODYHOST} 566 LOCALIP='000.000.000.000' 567 INCLUDERC=${SBDIR}/functions/get-ip.rc 568 FOURTHBODYHOSTIP=${LOCALIP} 569} 570 571# Reverse the IP. 572:0 573* ! SBCONFIG ?? ^Lite$ 574* ! FOURTHBODYHOSTIP ?? ^000\.000\.000\.000$ 575{ 576 LOCALIP=${FOURTHBODYHOSTIP} 577 INCLUDERC=${SBDIR}/functions/reverseip.rc 578 FOURTHBODYHOSTREVIP=${LOCALREVIP} 579 INCLUDERC=${SBDIR}/functions/cidrmatch.rc 580 FOURTHBODYHOSTIPREGEXP=${LOCALIPREGEXP} 581} 582 583 584# Extract the fifth body host and domain. 585# 586:0 587* ! FIRSTBODYHOST ?? ^host\.example\.com$ 588* ! SECONDBODYHOST ?? ^host\.example\.com$ 589* ! THIRDBODYHOST ?? ^host\.example\.com$ 590* ! FOURTHBODYHOST ?? ^host\.example\.com$ 591* FIFTHBODYHOST ?? ^host\.example\.com$ 592* B ?? (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 593 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 594 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 595 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 596 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 597 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 598 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 599 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 600 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 601 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 602 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 603 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 604 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 605 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 606 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$)\ 607 (.*$)*.*\ 608 (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 609 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 610 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 611 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 612 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 613 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 614 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 615 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 616 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 617 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 618 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 619 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 620 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 621 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 622 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$)\ 623 (.*$)*.*\ 624 (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 625 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 626 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 627 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 628 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 629 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 630 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 631 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 632 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 633 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 634 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 635 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 636 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 637 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 638 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$)\ 639 (.*$)*.*\ 640 (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 641 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 642 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 643 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 644 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 645 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 646 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 647 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 648 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 649 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 650 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 651 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 652 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 653 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 654 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$)\ 655 (.*$)*.*\ 656 (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)\/([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 657 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 658 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 659 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 660 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 661 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 662 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 663 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 664 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 665 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 666 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 667 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 668 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 669 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 670 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$) 671{ 672 :0 673 { LOCALBUFFER=${MATCH} } 674 675 :0 676 { FIFTHBODYHOST=`${ECHO} "${LOCALBUFFER}" | ${SED} -e 's/[=%]2[Ee]/\./g' -e 's/[^A-Za-z]*$//'` } 677} 678 679# Extract the domain for the fifth body host. 680:0 681* ! FIFTHBODYHOST ?? ^host\.example\.com$ 682{ 683 LOCALDOMAIN='example.com' 684 LOCALHOST=${FIFTHBODYHOST} 685 INCLUDERC=${SBDIR}/functions/get-domain.rc 686 FIFTHBODYDOMAIN=${LOCALDOMAIN} 687} 688 689# Look up the IP for the fifth body host. 690:0 691* ! SBCONFIG ?? ^Lite$ 692* ! FIFTHBODYHOST ?? ^host\.example\.com$ 693{ 694 LOCALDOMAIN=${FIFTHBODYDOMAIN} 695 LOCALHOST=${FIFTHBODYHOST} 696 LOCALIP='000.000.000.000' 697 INCLUDERC=${SBDIR}/functions/get-ip.rc 698 FIFTHBODYHOSTIP=${LOCALIP} 699} 700 701# Reverse the IP. 702:0 703* ! SBCONFIG ?? ^Lite$ 704* ! FIFTHBODYHOSTIP ?? ^000\.000\.000\.000$ 705{ 706 LOCALIP=${FIFTHBODYHOSTIP} 707 INCLUDERC=${SBDIR}/functions/reverseip.rc 708 FIFTHBODYHOSTREVIP=${LOCALREVIP} 709 INCLUDERC=${SBDIR}/functions/cidrmatch.rc 710 FIFTHBODYHOSTIPREGEXP=${LOCALIPREGEXP} 711} 712 713 714# Extract the sixth body host and domain. 715# 716:0 717* ! FIRSTBODYHOST ?? ^host\.example\.com$ 718* ! SECONDBODYHOST ?? ^host\.example\.com$ 719* ! THIRDBODYHOST ?? ^host\.example\.com$ 720* ! FOURTHBODYHOST ?? ^host\.example\.com$ 721* ! FIFTHBODYHOST ?? ^host\.example\.com$ 722* SIXTHBODYHOST ?? ^host\.example\.com$ 723* B ?? (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 724 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 725 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 726 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 727 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 728 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 729 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 730 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 731 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 732 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 733 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 734 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 735 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 736 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 737 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$)\ 738 (.*$)*.*\ 739 (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 740 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 741 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 742 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 743 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 744 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 745 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 746 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 747 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 748 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 749 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 750 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 751 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 752 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 753 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$)\ 754 (.*$)*.*\ 755 (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 756 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 757 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 758 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 759 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 760 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 761 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 762 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 763 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 764 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 765 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 766 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 767 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 768 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 769 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$)\ 770 (.*$)*.*\ 771 (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 772 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 773 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 774 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 775 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 776 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 777 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 778 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 779 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 780 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 781 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 782 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 783 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 784 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 785 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$)\ 786 (.*$)*.*\ 787 (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)([0-9a-z][-_0-9a-z]*(�|\.|=2[EF]|%2E))+(ac|\ 788 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 789 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 790 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 791 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 792 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 793 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 794 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 795 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 796 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 797 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 798 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 799 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 800 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 801 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$)\ 802 (.*$)*.*\ 803 (^|[^-_0-9a-z.=]|=[0-9a-f][0-9a-f]|/\.|(link|goto)=|[<>]\.|=20\.)\/([0-9a-z][-_0-9a-z]*(�|\.|=2]EF]|%2E))+(ac|\ 804 ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|\ 805 ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|\ 806 ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cu|cv|cx|cy|cz|\ 807 de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|exp|fi|fj|fk|fm|fo|fr|\ 808 ga|gd|ge|geek|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|\ 809 hk|hm|hn|hr|ht|hu|id|ie|il|im|in|info|int|io|iq|ir|is|it|je|jm|jo|jp|\ 810 ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|llc|lnx|lr|ls|lt|ltd|\ 811 lu|lv|ly|ma|mc|md|med|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|\ 812 museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nic|nl|no|noc|\ 813 np|nr|nu|null|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|porn|pr|pro|ps|\ 814 pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|\ 815 so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|travel|tt|tv|tw|tz|\ 816 ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xxx|ye|yt|yu|za|\ 817 zm|zw)([^-a-z0-9.@=&]|=2[0F]|=$|$|\. |\./|\.$) 818{ 819 :0 820 { LOCALBUFFER=${MATCH} } 821 822 :0 823 { SIXTHBODYHOST=`${ECHO} "${LOCALBUFFER}" | ${SED} -e 's/[=%]2[Ee]/\./g' -e 's/[^A-Za-z]*$//'` } 824} 825 826# Extract the domain for the sixth body host. 827:0 828* ! SIXTHBODYHOST ?? ^host\.example\.com$ 829{ 830 LOCALDOMAIN='example.com' 831 LOCALHOST=${SIXTHBODYHOST} 832 INCLUDERC=${SBDIR}/functions/get-domain.rc 833 SIXTHBODYDOMAIN=${LOCALDOMAIN} 834} 835 836# Look up the IP for the sixth body host. 837:0 838* ! SBCONFIG ?? ^Lite$ 839* ! SIXTHBODYHOST ?? ^host\.example\.com$ 840{ 841 LOCALDOMAIN=${SIXTHBODYDOMAIN} 842 LOCALHOST=${SIXTHBODYHOST} 843 LOCALIP='000.000.000.000' 844 INCLUDERC=${SBDIR}/functions/get-ip.rc 845 SIXTHBODYHOSTIP=${LOCALIP} 846} 847 848# Reverse the IP. 849:0 850* ! SBCONFIG ?? ^Lite$ 851* ! SIXTHBODYHOSTIP ?? ^000\.000\.000\.000$ 852{ 853 LOCALIP=${SIXTHBODYHOSTIP} 854 INCLUDERC=${SBDIR}/functions/reverseip.rc 855 SIXTHBODYHOSTREVIP=${LOCALREVIP} 856 INCLUDERC=${SBDIR}/functions/cidrmatch.rc 857 SIXTHBODYHOSTIPREGEXP=${LOCALIPREGEXP} 858} 859 860 861 862# GET MESSAGE BODY IPS 863# 864# Now, get any IPs in the message body. 865 866# Get First message body IP. 867:0 868* FIRSTBODYIP ?? ^000\.000\.000\.000$ 869* B ?? (^|[^0-9.])\/[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 870 [0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?([^0-9.@=&]|$) 871{ 872 :0 873 { LOCALBUFFER=${MATCH} } 874 875 :0 876 { FIRSTBODYIP=`${ECHO} "${LOCALBUFFER}" | ${SED} -e 's/[=%]2[Ee]/\./g' -e 's/[^0-9]*$//'` } 877} 878 879# Reverse first message body IP. 880:0 881* ! FIRSTBODYIP ?? ^000\.000\.000\.000$ 882{ 883 LOCALIP=${FIRSTBODYIP} 884 INCLUDERC=${SBDIR}/functions/reverseip.rc 885 FIRSTBODYREVIP=${LOCALREVIP} 886 INCLUDERC=${SBDIR}/functions/cidrmatch.rc 887 FIRSTBODYIPREGEXP=${LOCALIPREGEXP} 888} 889 890# Get second message body IP. 891:0 892* ! FIRSTBODYIP ?? ^000\.000\.000\.000$ 893* SECONDBODYIP ?? ^000\.000\.000\.000$ 894* B ?? (^|[^0-9.])[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 895 [0-9][0-9]?[0-9]?([^0-9.@=&]|$)(.*$)*.*\ 896 (^|[^0-9.])\/[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 897 [0-9][0-9]?[0-9]?([^0-9.@=&]|$) 898{ 899 :0 900 { LOCALBUFFER=${MATCH} } 901 902 :0 903 { SECONDBODYIP=`${ECHO} "${LOCALBUFFER}" | ${SED} -e 's/[=%]2[Ee]/\./g' -e 's/[^0-9]*$//'` } 904} 905 906# Reverse second message body IP. 907:0 908* ! SECONDBODYIP ?? ^000\.000\.000\.000$ 909{ 910 LOCALIP=${SECONDBODYIP} 911 INCLUDERC=${SBDIR}/functions/reverseip.rc 912 SECONDBODYREVIP=${LOCALREVIP} 913 INCLUDERC=${SBDIR}/functions/cidrmatch.rc 914 SECONDBODYIPREGEXP=${LOCALIPREGEXP} 915} 916 917# Get third message body IP. 918:0 919* ! FIRSTBODYIP ?? ^000\.000\.000\.000$ 920* ! SECONDBODYIP ?? ^000\.000\.000\.000$ 921* THIRDBODYIP ?? ^000\.000\.000\.000$ 922* B ?? (^|[^0-9.])[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 923 [0-9][0-9]?[0-9]?([^0-9.@=&]|$)(.*$)*.*\ 924 (^|[^0-9.])[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 925 [0-9][0-9]?[0-9]?([^0-9.@=&]|$)(.*$)*.*\ 926 (^|[^0-9.])\/[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 927 [0-9][0-9]?[0-9]?([^0-9.@=&]|$) 928{ 929 :0 930 { LOCALBUFFER=${MATCH} } 931 932 :0 933 { THIRDBODYIP=`${ECHO} "${LOCALBUFFER}" | ${SED} -e 's/[=%]2[Ee]/\./g' -e 's/[^0-9]*$//'` } 934} 935 936# Reverse third message body IP. 937:0 938* ! THIRDBODYIP ?? ^000\.000\.000\.000$ 939{ 940 LOCALIP=${THIRDBODYIP} 941 INCLUDERC=${SBDIR}/functions/reverseip.rc 942 THIRDBODYREVIP=${LOCALREVIP} 943 INCLUDERC=${SBDIR}/functions/cidrmatch.rc 944 THIRDBODYIPREGEXP=${LOCALIPREGEXP} 945} 946 947# Get fourth message body IP. 948:0 949* ! FIRSTBODYIP ?? ^000\.000\.000\.000$ 950* ! SECONDBODYIP ?? ^000\.000\.000\.000$ 951* ! THIRDBODYIP ?? ^000\.000\.000\.000$ 952* FOURTHBODYIP ?? ^000\.000\.000\.000$ 953* B ?? (^|[^0-9.])[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 954 [0-9][0-9]?[0-9]?([^0-9.@=&]|$)(.*$)*.*\ 955 (^|[^0-9.])[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 956 [0-9][0-9]?[0-9]?([^0-9.@=&]|$)(.*$)*.*\ 957 (^|[^0-9.])[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 958 [0-9][0-9]?[0-9]?([^0-9.@=&]|$)(.*$)*.*\ 959 (^|[^0-9.])\/[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 960 [0-9][0-9]?[0-9]?([^0-9.@=&]|$) 961{ 962 :0 963 { LOCALBUFFER=${MATCH} } 964 965 :0 966 { FOURTHBODYIP=`${ECHO} "${LOCALBUFFER}" | ${SED} -e 's/[=%]2[Ee]/\./g' -e 's/[^0-9]*$//'` } 967} 968 969# Reverse fourth message body IP. 970:0 971* ! FOURTHBODYIP ?? ^000\.000\.000\.000$ 972{ 973 LOCALIP=${FOURTHBODYIP} 974 INCLUDERC=${SBDIR}/functions/reverseip.rc 975 FOURTHBODYREVIP=${LOCALREVIP} 976 INCLUDERC=${SBDIR}/functions/cidrmatch.rc 977 FOURTHBODYIPREGEXP=${LOCALIPREGEXP} 978} 979 980# Get fifth message body IP. 981:0 982* ! FIRSTBODYIP ?? ^000\.000\.000\.000$ 983* ! SECONDBODYIP ?? ^000\.000\.000\.000$ 984* ! THIRDBODYIP ?? ^000\.000\.000\.000$ 985* ! FOURTHBODYIP ?? ^000\.000\.000\.000$ 986* FIFTHBODYIP ?? ^000\.000\.000\.000$ 987* B ?? (^|[^0-9.])[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 988 [0-9][0-9]?[0-9]?([^0-9.@=&]|$)(.*$)*.*\ 989 (^|[^0-9.])[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 990 [0-9][0-9]?[0-9]?([^0-9.@=&]|$)(.*$)*.*\ 991 (^|[^0-9.])[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 992 [0-9][0-9]?[0-9]?([^0-9.@=&]|$)(.*$)*.*\ 993 (^|[^0-9.])[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 994 [0-9][0-9]?[0-9]?([^0-9.@=&]|$)(.*$)*.*\ 995 (^|[^0-9.])\/[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 996 [0-9][0-9]?[0-9]?([^0-9.@=&]|$) 997{ 998 :0 999 { LOCALBUFFER=${MATCH} } 1000 1001 :0 1002 { FIFTHBODYIP=`${ECHO} "${LOCALBUFFER}" | ${SED} -e 's/[=%]2[Ee]/\./g' -e 's/[^0-9]*$//'` } 1003} 1004 1005# Reverse fifth message body IP. 1006:0 1007* ! FIFTHBODYIP ?? ^000\.000\.000\.000$ 1008{ 1009 LOCALIP=${FIFTHBODYIP} 1010 INCLUDERC=${SBDIR}/functions/reverseip.rc 1011 FIFTHBODYREVIP=${LOCALREVIP} 1012 INCLUDERC=${SBDIR}/functions/cidrmatch.rc 1013 FIFTHBODYIPREGEXP=${LOCALIPREGEXP} 1014} 1015 1016# Get sixth message body IP. 1017:0 1018* ! FIRSTBODYIP ?? ^000\.000\.000\.000$ 1019* ! SECONDBODYIP ?? ^000\.000\.000\.000$ 1020* ! THIRDBODYIP ?? ^000\.000\.000\.000$ 1021* ! FOURTHBODYIP ?? ^000\.000\.000\.000$ 1022* ! FIFTHBODYIP ?? ^000\.000\.000\.000$ 1023* SIXTHBODYIP ?? ^000\.000\.000\.000$ 1024* B ?? (^|[^0-9.])[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 1025 [0-9][0-9]?[0-9]?([^0-9.@=&]|$)(.*$)*.*\ 1026 (^|[^0-9.])[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 1027 [0-9][0-9]?[0-9]?([^0-9.@=&]|$)(.*$)*.*\ 1028 (^|[^0-9.])[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 1029 [0-9][0-9]?[0-9]?([^0-9.@=&]|$)(.*$)*.*\ 1030 (^|[^0-9.])[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 1031 [0-9][0-9]?[0-9]?([^0-9.@=&]|$)(.*$)*.*\ 1032 (^|[^0-9.])[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 1033 [0-9][0-9]?[0-9]?([^0-9.@=&]|$)(.*$)*.*\ 1034 (^|[^0-9.])\/[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)[0-9][0-9]?[0-9]?(�|\.|=2E|%2E)\ 1035 [0-9][0-9]?[0-9]?([^0-9.@=&]|$) 1036{ 1037 :0 1038 { LOCALBUFFER=${MATCH} } 1039 1040 :0 1041 { SIXTHBODYIP=`${ECHO} "${LOCALBUFFER}" | ${SED} -e 's/[=%]2[Ee]/\./g' -e 's/[^0-9]*$//'` } 1042} 1043 1044# Reverse sixth message body IP. 1045:0 1046* ! SIXTHBODYIP ?? ^000\.000\.000\.000$ 1047{ 1048 LOCALIP=${SIXTHBODYIP} 1049 INCLUDERC=${SBDIR}/functions/reverseip.rc 1050 SIXTHBODYREVIP=${LOCALREVIP} 1051 INCLUDERC=${SBDIR}/functions/cidrmatch.rc 1052 SIXTHBODYIPREGEXP=${LOCALIPREGEXP} 1053} 1054 1055