Страница 2 из 2

Re: Вырвать часть значения строки

Добавлено: 16 сен 2023, 20:48
gregy
Скажите пожалуйста а как можно получить значение между двумя знаками. В частности нужно получить последний октет ip адреса.
192.168.1.1/24 или может быть 192.168.1.121/24. как получить то что находится между последней "." и "/" ? :du_ma_et:

Re: Вырвать часть значения строки

Добавлено: 18 сен 2023, 11:12
Sertik
:local ip 192.168.45.23
:local lastoctet ([:tonum $ip] & 255)
:put $lastoctet

Re: Вырвать часть значения строки

Добавлено: 18 сен 2023, 11:16
Sertik
Универсальный вариант Rextended: (viewtopic.php?f=9&t=85205&p=880374#p880374) собирает в массив все октеты параметра функции $1

Код: Выделить всё

:local ip2array do={
    :local ip [:toip $1]
    :local array [:toarray ""]
    :if ([:typeof $ip] != "ip") do={:return $array}
    :set ($array->0) $ip
    :set ip [:tonum $ip]
    :set ($array->1) (($ip >> 24) & 255)
    :set ($array->2) (($ip >> 16) & 255)
    :set ($array->3) (($ip >>  8) & 255)
    :set ($array->4) ( $ip        & 255)
    :return $array
}

# example for print 2nd octet (49) from 85.49.74.128


# example code

Код: Выделить всё

:put ([$ip2array 85.49.74.128]->2)