11.04.2013 Views

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

}<br />

done<br />

eval $2=\( \$\{_st_reply\[@\]\} \)<br />

fi<br />

return 0<br />

# The long forms, a.k.a., the parse it yourself versions<br />

Appen<strong>di</strong>ce A. Script aggiuntivi<br />

# RFC 2782 Service lookups<br />

# <strong>di</strong>g +noall +nofail +answer _ldap._tcp.openldap.org -t srv<br />

# _._.<br />

# _ldap._tcp.openldap.org. 3600 IN SRV 0 0 389 ldap.openldap.org.<br />

# domain TTL Class SRV Priority Weight Port Target<br />

# Forward lookup :: Name -> poor man’s zone transfer<br />

# long_fwd <br />

long_fwd() {<br />

local -a _lf_reply<br />

local -i _lf_rc<br />

local -i _lf_cnt<br />

IFS=${NO_WSP}<br />

echo -n ’:’<br />

# echo ’lfwd: ’${1}<br />

_lf_reply=( $(<br />

<strong>di</strong>g +noall +nofail +answer +authority +ad<strong>di</strong>tional \<br />

${1} -t soa ${1} -t mx ${1} -t any 2>/dev/null) )<br />

_lf_rc=$?<br />

if [ ${_lf_rc} -ne 0 ]<br />

then<br />

_trace_log[${#_trace_log[@]}]=’# # # Zone lookup error ’${_lf_rc}’ on ’${1}’ # # #’<br />

# [ ${_lf_rc} -ne 9 ] && pend_drop<br />

return ${_lf_rc}<br />

else<br />

# Some versions of ’<strong>di</strong>g’ return warnings on stdout.<br />

_lf_cnt=${#_lf_reply[@]}<br />

for (( _lf = 0 ; _lf < ${_lf_cnt} ; _lf++ ))<br />

do<br />

[ ’x’${_lf_reply[${_lf}]:0:2} == ’x;;’ ] &&<br />

unset _lf_reply[${_lf}]<br />

done<br />

eval $2=\( \$\{_lf_reply\[@\]\} \)<br />

fi<br />

return 0<br />

}<br />

# The reverse lookup domain name correspon<strong>di</strong>ng to the IPv6 address:<br />

# 4321:0:1:2:3:4:567:89ab<br />

# would be (nibble, I.E: Hex<strong>di</strong>git) reversed:<br />

# b.a.9.8.7.6.5.0.4.0.0.0.3.0.0.0.2.0.0.0.1.0.0.0.0.0.0.0.1.2.3.4.IP6.ARPA.<br />

# Reverse lookup :: Address -> poor man’s delegation chain<br />

# long_rev <br />

long_rev() {<br />

local -a _lr_reply<br />

687

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!