LINUX.ORG.RU

История изменений

Исправление vodz, (текущая версия) :

У меня версия bash не поддерживает unset octets[-1]. Да и вообще unset тормоз еще тот. Так что получилось как то так:

function ip2u32() {
  local -i o=( ${1//./ } )
  local -i last=${#o[@]}-1 u32
  u32=o[last]
  o[last]=0
  u32+=o[2]*256+o[1]*256*256+o[0]*256*256*256
  echo $u32
}
Обидно, что в одну строку local не работает.

Исходная версия vodz, :

У меня версия bash не поддерживает unset octets[-1]. Да и вообще unset тормоз еще тот. Так что получилось как то так:

function ip2u32() {
  local -i o=( ${1//./ } )
  local -i last=${#o[@]}-1 u32
  u32=o[last]
  o[last]=0
  u32+=o[2]*256+o[1]*256*256+o[0]*256*256*256
  echo $u32
}