#!/bin/bash
#===============================================================================
#
#          FILE: unban
#
#         USAGE: unban <IP>
#
#   DESCRIPTION: Unban specify IP by iptables
#
#       OPTIONS: <IP>
#                
#  REQUIREMENTS: iptables
#
#         NOTES: 
#
#          BUGS:  ---
#        AUTHOR: rickz (Rick Zhang), xlrickz@gmail.com
#       COMPANY: X-LEGEND Entertainment Corp.
#       CREATED: Wed Jul  6 00:38:48 EDT 2011
#      REVISION: 1.0
#
#          TODO:
#
#===============================================================================

#set -o nounset                              # Treat unset variables as an error
set -m                                       # Enable job control 
#source ~/.gamerc

[ "$1" == "" ] && exec echo "Usage: $0 <IP>"

IP="$(egrep "\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b" <<< "$1")"

[ "$IP" == "" ] && exec echo "Error: Wrong IP format."

# unban by iptables
/sbin/iptables -D INPUT -s $IP -j DROP \
&& rm -f /tmp/ban/$IP \
|| exec echo "Error: Run iptables failed"

echo "$IP unbanned."

