File: //usr/local/directadmin/scripts/removeip
#!/bin/bash
DIRECTADMIN_BIN=/usr/local/directadmin/directadmin
DIRECTADMIN_CONF=/usr/local/directadmin/conf/directadmin.conf
if [ -s $DIRECTADMIN_CONF ] && [ -x $DIRECTADMIN_BIN ]; then
ETH_DEV=`$DIRECTADMIN_BIN c | grep '^ethernet_dev=' | cut -d= -f2`
fi
if [ -z "${ETH_DEV}" ]; then
ETH_DEV=`ip route show | grep -m1 "default" | awk '{print $5}'`
fi
SBIN_IP=/sbin/ip
if [ ! -x ${SBIN_IP} ] && [ -x /usr/sbin/ip ]; then
SBIN_IP=/usr/sbin/ip
fi
if [ ! -x ${SBIN_IP} ]; then
echo "Cannot find ${SBIN_IP} nor in other locations."
exit 2
fi
# we need the ip to delete
if [ $# -ne "1" ] && [ $# -ne "2" ]; then
echo "Usage: $0 <ip> (<condensed_ipv6>)"
exit 1
fi
if ${SBIN_IP} a | grep -m1 -q " $1/"; then
#"ip" accepts IPs without netmasks, but shows a warning that the feature might not be avail in the future, this we delete IP with its mask
IP_TO_REMOVE="`${SBIN_IP} a | grep -m1 -o \" ${1}/[0-9]*\" | awk '{print $1}'`"
${SBIN_IP} addr del ${IP_TO_REMOVE} dev ${ETH_DEV}
if [ "$?" -ne 0 ] && /sbin/ip a | grep -m1 -q " $1/"; then
exit 1
fi
fi
exit 0
#can't find it, it must be gone