URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9236
[ Назад ]

Исходное сообщение
"Высчитать IP из логина VPN"

Отправлено SnaOne , 05-Сен-11 10:07 
Привет.

Подскажите как из логинов типа MSK_8602 / HABAR_52200 вычеслить ip-адреса сети 10.86.2.0 / 10.52.200.0 с помощью shell-скриптинга.

в моем скрипте вызывается dialog с текстовыми полями, нужно чтобы пользователь вводил только логин, а айпишник сети высчитывался из него автоматом. Второй октет адреса никогда не превышает двух едениц (1 - 99). Спасибо.


Содержание

Сообщения в этом обсуждении
"Высчитать IP из логина VPN"
Отправлено shadow_alone , 05-Сен-11 10:23 

А как Вы собираетесь определять, например логин TST_6230
то есть, это может быть и 10.62.30.0 и 10.6.230.0?
или у Вас есть начальные нули для второго октета, то есть второй октет всегда состоит из двух цифр? типа TST_06230

"Высчитать IP из логина VPN"
Отправлено SnaOne , 05-Сен-11 10:24 
> А как Вы собираетесь определять, например логин TST_6230
> то есть, это может быть и 10.62.30.0 и 10.6.230.0?
> или у Вас есть начальные нули для второго октета, то есть второй
> октет всегда состоит из двух цифр? типа TST_06230

Все верно у меня TST_06230


"Высчитать IP из логина VPN"
Отправлено shadow_alone , 05-Сен-11 10:38 
приблизительно накидал на скорую руку, дальше, думаю, разберетесь

#!/bin/bash
mlogin=$1

mnum1=`expr index "$mlogin" _`
mnum=${mlogin:$mnum1}

mnum2=${mnum:0:2}
mnum2=${mnum2#0}

mnum3=${mnum:2}
mnum3=${mnum3#0}

network="10".$mnum2.$mnum3."0"

echo $network

запускаете:
./script_name login
на выходе получаете свою сеть.


"Высчитать IP из логина VPN"
Отправлено SnaOne , 05-Сен-11 16:06 
Спасибо, сразу не заметил :)


>[оверквотинг удален]
> mnum2=${mnum:0:2}
> mnum2=${mnum2#0}
> mnum3=${mnum:2}
> mnum3=${mnum3#0}
> network="10".$mnum2.$mnum3."0"
> echo $network
>

> запускаете:
> ./script_name login
> на выходе получаете свою сеть.


"Высчитать IP из логина VPN"
Отправлено SnaOne , 05-Сен-11 16:05 
UPD.

1.) очистить MSK_8602 от символов отличных от цифр = 8602
2.) поставить "10." перед 8602, после второй цифры просто точку = 10.86.02
3.) удалить нули после точки, добавить .0 в конец = 10.86.2.0

Чем? Sed, AWK?


"Высчитать IP из логина VPN"
Отправлено shadow_alone , 05-Сен-11 16:09 
> Чем? Sed, AWK?

Все проще, наверху накидал уже для Вас.


"Высчитать IP из логина VPN"
Отправлено SnaOne , 05-Сен-11 16:28 
Работает! Спасибо Вам


>> Чем? Sed, AWK?
> Все проще, наверху накидал уже для Вас.


"Высчитать IP из логина VPN"
Отправлено SnaOne , 05-Сен-11 16:26 
> Привет.
> Подскажите как из логинов типа MSK_8602 / HABAR_52200 вычеслить ip-адреса сети 10.86.2.0
> / 10.52.200.0 с помощью shell-скриптинга.
> в моем скрипте вызывается dialog с текстовыми полями, нужно чтобы пользователь вводил
> только логин, а айпишник сети высчитывался из него автоматом. Второй октет
> адреса никогда не превышает двух едениц (1 - 99). Спасибо.