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.

OUTFILE=whois.txt # Output file.<br />

PORT=4321<br />

if [ -z "$1" ] # Check for (required) command-line arg.<br />

then<br />

echo "Usage: $0 domain name or IP address"<br />

exit $E_BADARGS<br />

fi<br />

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

if [[ "$1" =~ "[a-zA-Z][a-zA-Z]$" ]] # Ends in two alpha chars?<br />

then # It’s a domain name && must do host lookup.<br />

IPADDR=$(host -W $HOSTWAIT $1 | awk ’{print $4}’)<br />

# Doing host lookup to get IP address.<br />

# Extract final field.<br />

else<br />

IPADDR="$1" # Command-line arg was IP address.<br />

fi<br />

echo; echo "IP Address is: "$IPADDR""; echo<br />

if [ -e "$OUTFILE" ]<br />

then<br />

rm -f "$OUTFILE"<br />

echo "Stale output file \"$OUTFILE\" removed."; echo<br />

fi<br />

# Sanity checks.<br />

# (This section needs more work.)<br />

# ===============================<br />

if [ -z "$IPADDR" ]<br />

# No response.<br />

then<br />

echo "Host not found!"<br />

exit $E_NOHOST # Bail out.<br />

fi<br />

if [[ "$IPADDR" =~ "^[;;]" ]]<br />

# ;; connection timed out; no servers could be reached<br />

then<br />

echo "Host lookup timed out!"<br />

exit $E_TIMEOUT # Bail out.<br />

fi<br />

if [[ "$IPADDR" =~ "[(NXDOMAIN)]$" ]]<br />

# Host xxxxxxxxx.xxx not found: 3(NXDOMAIN)<br />

then<br />

echo "Host not found!"<br />

exit $E_NOHOST # Bail out.<br />

fi<br />

712

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

Saved successfully!

Ooh no, something went wrong!