Поскольку вычисление с IP не так просто, я создал функцию, которая преобразует IP в десятичное значение. Вырежьте и вставьте это в cli, и она создаст функцию IPtoDec [
:global IPtoDec do={
local count 16777216
local sum
:if ([:typeof [:toip $1]] != "ip") do={
:error message="Вы не указали ДЕЙСТВИТЕЛЬНЫЙ IP-адрес."}
:local workString value=[:tostr [:toip $1]]
:local endString value=""
:local thisChar value=""
:for i from=0 to=[:len $workString] step=1 do={
:set $thisChar value=[:pick $workString $i ($i+1)]
:if ($thisChar = ".") do={
:set $thisChar value=","}
:set $endString value=($endString.$thisChar)
}
:local resultArray value=[:toarray $endString]
:foreach i in=$resultArray do={
:set sum ($i * $count + $sum)
:set count ($count / 256)
}
:return value=$sum
}
] Тестовый скрипт для использования функции: [
:local IP 192.168.88.1
:local test [$IPtoDec $IP]
:put $test
]
3232258049 Функция частично основана на этом посте: Так что немного благодарности @royalpublishing
:global IPtoDec do={
local count 16777216
local sum
:if ([:typeof [:toip $1]] != "ip") do={
:error message="Вы не указали ДЕЙСТВИТЕЛЬНЫЙ IP-адрес."}
:local workString value=[:tostr [:toip $1]]
:local endString value=""
:local thisChar value=""
:for i from=0 to=[:len $workString] step=1 do={
:set $thisChar value=[:pick $workString $i ($i+1)]
:if ($thisChar = ".") do={
:set $thisChar value=","}
:set $endString value=($endString.$thisChar)
}
:local resultArray value=[:toarray $endString]
:foreach i in=$resultArray do={
:set sum ($i * $count + $sum)
:set count ($count / 256)
}
:return value=$sum
}
] Тестовый скрипт для использования функции: [
:local IP 192.168.88.1
:local test [$IPtoDec $IP]
:put $test
]
3232258049 Функция частично основана на этом посте: Так что немного благодарности @royalpublishing
