[Sysadmins] Куда пропал ipcalc

Вадим Илларионов =?iso-8859-1?q?master_=CE=C1_usib=2Eirkps=2Eru?=
Чт Июл 12 13:05:03 MSD 2007


От Andrey Rahmatullin поступило следующее:

> On Fri, Jul 06, 2007 at 02:35:55PM +0900, Вадим Илларионов wrote:
>> Хм. А не место ли ему в net-tools?
> Или ещё где-нибудь.
>> Ведь net-scripts & etcnet вместе генетически не живут.
> Ага.

Вопрос снят. Удалось обойтись средствами шелла - спасибо коллеге.
Получилась такая небольшенькая функция:

get_ipv4_nets(){
    local NAME=${1:?missing 1st argument to $FUNCNAME}

    # FIXME should we parse it by more complex regexp?
    for ADDR in $($IP -4 addr show dev $NAME 2>/dev/null | \
                grep -ose "\binet\b.*\b" | cut -d" " -f2); do
        echo "$ADDR" | grep -q "/" && {
            local IFS=$'./'
            SHIFT=24
            addr=0

            for i in $ADDR; do
                [ $SHIFT -lt 0 ] &&
                    MASK=$((32 - i)) ||
                    ((addr |= (i << SHIFT)))
                ((SHIFT -= 8))
            done

                ((addr &= 4294967295 >> MASK << MASK))
                echo "$((addr >> 24)).$(((addr >> 16) & 255)).$(((addr >> 8) &
255)).$((addr & 255))"
    }
    done
}

________________________
С уважением,
Вадим Илларионов
системный администратор
Усолье-Сибирский почтамт
JID: см. <mailto:>
UIN: 7899517
Телефоны:
Мобильный +7 904 658-4154
Рабочий   +7 39543 444-00




Подробная информация о списке рассылки Sysadmins