- Линейку в студию?, Andrey Mitrofanov, 18:46 , 16-Май-11 (1)
> Скрипт генерирует произвольный адрес ipv6 в пределах заданной сети $network_v6 > На баше работает, но надо уйти от него на sh.Даже и не знаю... На баше "в режиме sh", типа, вот... > ipv6=$network_v6:$a:$b:$c:$d $ sh sh-3.2$ shuf -i 0-255 -n 1 130 sh-3.2$ printf "%x:%x:%x:%x",1,1,1,1 0:0:0:0,1,1,1,1sh-3.2$ printf "%x:%x:%x:%x\n",1,1,1,1 0:0:0:0 ,1,1,1,1sh-3.2$ sh-3.2$ printf "%x:%x:%x:%x\n" 1 1 1 1 1:1:1:1 sh-3.2$ shuf -i 0-65535 -n 1 29285 sh-3.2$ printf "%x:%x:%x:%x\n" `shuf -i 0-65535 -n 1` `shuf -i 0-65535 -n 1` `shuf -i 0-65535 -n 1` `shuf -i 0-65535 -n 1` fed6:678d:8bf8:cc60 sh-3.2$ net=1:1:1 sh-3.2$ printf "$net:%x:%x:%x:%x\n" `shuf -i 0-65535 -n 1` `shuf -i 0-65535 -n 1` `shuf -i 0-65535 -n 1` `shuf -i 0-65535 -n 1` 1:1:1:9889:78f2:d487:ce2a sh-3.2$ _
- Линейку в студию?, universite, 01:45 , 17-Май-11 (5)
> sh-3.2$ shuf -i 0-65535 -n 1 > 29285 # shuf -i 0-65535 -n 1 shuf: Команда не найдена.
- Линейку в студию?, Andrey Mitrofanov, 11:08 , 17-Май-11 (10)
> shuf: Команда не найдена.$ dpkg -S bin/shuf coreutils: /usr/bin/shuf abm@router-ufk:~$ shuf --version shuf (GNU coreutils) 6.10 Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Автор программы -- Paul Eggert. ................>8................ $ printf "%x:%x:%x:%x\n" $RANDOM $RANDOM $RANDOM $RANDOM 258c:7fcf:2a14:5288 $ _ ЗЫЖ Для эстетов :)) :
$ random64k() { echo $((RANDOM+32768*(RANDOM%2))); } $ printf "%x:%x:%x:%x\n" `random64k` `random64k` `random64k` `random64k` c6a8:886f:4a35:bfb $ _ PPS: od -N 2 -x /dev/urandom PPPS: od -N 8 -x /dev/urandom|sed 's/^[^ ]\+ //;s/ 0+/ /g;s/ /:/g;q'
- Линейку в студию?, Andrey Mitrofanov, 20:09 , 02-Июн-11 (35)
> sh-3.2$ printf "$net:%x:%x:%x:%x\n" `shuf -i 0-65535 -n 1` `shuf -i 0-65535 -n > 1` `shuf -i 0-65535 -n 1` `shuf -i 0-65535 -n 1` > 1:1:1:9889:78f2:d487:ce2a > sh-3.2$ _ ...кстати, "пролетая над Череповцом"(с), придумалось: $ printf "%x:%x:%x:%x\n" `shuf -i 0-65535 -n 4` b606:8e3a:c795:dcd6 $ _
- Генератор случайных чисел по SH, pavlinux, 00:53 , 17-Май-11 (2) +1
>[оверквотинг удален] > rnd_ipv6_block () > { > ## need bash! > a=${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]} > b=${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]} > c=${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]} > d=${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]} > ipv6=$network_v6:$a:$b:$c:$d > } > #!/bin/shnetwork_v6="2001:0db8:11a3:09d7" rnd_ipv6_block () { HEX="tr -dc a-f0-9 < /dev/urandom | head -c 4" ipv6=$network_v6:$(eval $HEX):$(eval $HEX):$(eval $HEX):$(eval $HEX); }
- Генератор случайных чисел по SH, DeadLoco, 01:35 , 17-Май-11 (3)
> tr -dc a-f0-9 < /dev/urandomКласс!
- Генератор случайных чисел по SH, pavlinux, 01:38 , 17-Май-11 (4)
>> tr -dc a-f0-9 < /dev/urandom > Класс!А то! :)
- Генератор случайных чисел по SH, universite, 01:47 , 17-Май-11 (6)
>> tr -dc a-f0-9 < /dev/urandom > Класс!не совсем
# tr -dc a-f0-9 < /dev/urandom | head -c 256 e²fec1f10080fa9dc74bbfa675dd0155²6²b32b3d2²751b1599d4²19379fa800²0cb²a9²07a4623ab266933b08bc5e28ce²96f8ab7094653256727d29133a676d6e²ca²c6d1d846a4b899b9a02461d9c964fda41bbcc6ca9eab3d713b624247780679a316a18e48d600a8ed1²5b99f268²929c651e5²f1078f0c7fbe912b6ae0
Какие-то левые символы проскакивают...
- Генератор случайных чисел по SH, DeadLoco, 01:56 , 17-Май-11 (7)
> Какие-то левые символы проскакивают...# tr -dc a-f0-9 < /dev/urandom | tr "[=2=]" "2" | head -c 256
- Генератор случайных чисел по SH, universite, 02:02 , 17-Май-11 (8)
>> Какие-то левые символы проскакивают... > # tr -dc a-f0-9 < /dev/urandom | tr "[=2=]" "2" | head > -c 256 Замечательно, спецсимволы не появляются, но время генерации 20 ipv6 заметно тормозит.
# time /bin/sh random-ipv6-address-generator.2.sh 0.445u 0.843s 0:01.14 112.2% 44+1178k 0+0io 0pf+0w
Скрипт на баше:
#time /usr/local/bin/bash random-ipv6-address-generator.sh 0.000u 0.007s 0:00.04 0.0% 0+0k 0+0io 0pf+0w
- Генератор случайных чисел по SH, pavlinux, 12:15 , 17-Май-11 (11)
>>> Какие-то левые символы проскакивают...Кривая консоль у тя. >[оверквотинг удален] > Замечательно, спецсимволы не появляются, но время генерации 20 ipv6 заметно тормозит. dd if=/dev/urandom bs=256 count=1 conv=ascii,lcase | tr -dc a-f0-9 | head -c 4
- Генератор случайных чисел по SH, universite, 12:28 , 17-Май-11 (13)
>>>> Какие-то левые символы проскакивают... > Кривая консоль у тя.Добро пожаловать в мир совместимых консолей и кроссплатформенных команд. >>[оверквотинг удален] >> Замечательно, спецсимволы не появляются, но время генерации 20 ipv6 заметно тормозит. > dd if=/dev/urandom bs=256 count=1 conv=ascii,lcase | tr -dc a-f0-9 | head -c > 4 Это быстро генерится.
- Генератор случайных чисел по SH, pavlinux, 12:37 , 17-Май-11 (14)
>>>>> Какие-то левые символы проскакивают... >> Кривая консоль у тя. > Добро пожаловать в мир совместимых консолей и кроссплатформенных команд. >>>[оверквотинг удален] >>> Замечательно, спецсимволы не появляются, но время генерации 20 ipv6 заметно тормозит. >> dd if=/dev/urandom bs=256 count=1 conv=ascii,lcase | tr -dc a-f0-9 | head -c >> 4 > Это быстро генерится.Но есть косяк, точнее вероятность того, что из 256 случайных байт не будет 4-х из множества A-Fa-f0-9 :)
- Генератор случайных чисел по SH, DeadLoco, 21:44 , 17-Май-11 (16) +1
> Но есть косяк, точнее вероятность того, что из 256 случайных байт > не будет 4-х из множества A-Fa-f0-9 :) И, судя по манам, есть смысл 0-9 заменить на [:digit:]
- Генератор случайных чисел по SH, pavlinux, 21:52 , 17-Май-11 (17)
>> Но есть косяк, точнее вероятность того, что из 256 случайных байт >> не будет 4-х из множества A-Fa-f0-9 :) > И, судя по манам, есть смысл 0-9 заменить на [:digit:] Там же ... [:xdigit:] # tr -dc [:xdigit:] < /dev/urandom | head -c 4
- Генератор случайных чисел по SH, universite, 22:06 , 17-Май-11 (19)
>>> Но есть косяк, точнее вероятность того, что из 256 случайных байт >>> не будет 4-х из множества A-Fa-f0-9 :) >> И, судя по манам, есть смысл 0-9 заменить на [:digit:] > Там же ... > [:xdigit:] > # tr -dc [:xdigit:] < /dev/urandom | head -c 4 Кавычки не забываем ставить.
tr -dc "[:xdigit:]" < /dev/urandom | head -c 4
P.S. Все равно 9-тый вариант скрипта быстрее. P.P.S. Этот :
# time ./random-ipv6-address-generator.10.sh 0.218u 0.479s 0:00.63 107.9% 50+1033k 0+0io 0pf+0w
- Генератор случайных чисел по SH, pavlinux, 22:23 , 17-Май-11 (20)
>>>> Но есть косяк, точнее вероятность того, что из 256 случайных байт >>>> не будет 4-х из множества A-Fa-f0-9 :) >>> И, судя по манам, есть смысл 0-9 заменить на [:digit:] >> Там же ... >> [:xdigit:] >> # tr -dc [:xdigit:] < /dev/urandom | head -c 4 > Кавычки не забываем ставить. # strace -e execve tr -dc [:xdigit:] < /dev/null execve("/usr/bin/tr", ["tr", "-dc", "[:xdigit:]"], [/* 88 vars */]) = 0# strace -e execve tr -dc "[:xdigit:]" < /dev/null execve("/usr/bin/tr", ["tr", "-dc", "[:xdigit:]"], [/* 88 vars */]) = 0
Нафига? :)
- Генератор случайных чисел по SH, universite, 22:56 , 17-Май-11 (22)
> > # strace -e execve tr -dc [:xdigit:] < /dev/null > execve("/usr/bin/tr", ["tr", "-dc", "[:xdigit:]"], [/* 88 vars */]) = 0 > # strace -e execve tr -dc "[:xdigit:]" < /dev/null > execve("/usr/bin/tr", ["tr", "-dc", "[:xdigit:]"], [/* 88 vars */]) = 0 > > Нафига? :) В линуксовом мане без кавычек, а вот во фряшном с кавычками. :) Create a list of the words in file1, one per line, where a word is taken to be a maximal string of letters. tr -cs "[:alpha:]" "\n" < file1
- Генератор случайных чисел по SH, universite, 14:52 , 17-Май-11 (15)
# Copyright Andrey Mitrofanov # Copyright pavlinux http://pavlinux.rurnd_ipv6_block () { HEX="od -N 2 -x /dev/urandom | cut -c 14-17" ipv6=$network_v6:$(eval $HEX):$(eval $HEX):$(eval $HEX):$(eval $HEX); }
# time ./random-ipv6-address-generator.9.sh 0.097u 0.352s 0:00.30 146.6% 78+974k 0+0io 0pf+0w
- Генератор случайных чисел по SH, pavlinux, 21:56 , 17-Май-11 (18)
># Copyright Andrey Mitrofanov ># Copyright pavlinux http://pavlinux.ru Митрофаныч, нас закопирайтили... =)
- Генератор случайных чисел по SH, pavlinux, 22:49 , 17-Май-11 (21)
> HEX="od -N 2 -x /dev/urandom | cut -c 14-17" Оно точно работает? # HEX="od -N 2 -x /dev/urandom | cut -c 14-17" # echo -ne $(eval $HEX) | od -x 0000000
У тя там что, китайская, UTF-16 или UTF-32 ? Для портабильности придётся так: # od -N2 -x /dev/urandom | head -1 | cut -d" " -f2,2
- Генератор случайных чисел по SH, universite, 22:59 , 17-Май-11 (23)
>> HEX="od -N 2 -x /dev/urandom | cut -c 14-17" > Оно точно работает? > # HEX="od -N 2 -x /dev/urandom | cut -c 14-17" > # echo -ne $(eval $HEX) | od -x > 0000000 В линуксе и фряхе разные отступы в линуксе:
# od -N 2 -x /dev/urandom 0000000 c614 0000002
во фряхе:
# od -N 2 -x /dev/urandom 0000000 10cf 0000002
- Генератор случайных чисел по SH, universite, 23:01 , 17-Май-11 (24)
> Для портабильности придётся так: > # od -N2 -x /dev/urandom | head -1 | cut -d" " > -f2,2 Во фряхе
# od -N2 -x /dev/urandom | head -1 | cut -d" " -f2,2# od -N2 -x /dev/urandom | head -1 0000000 9372
- Генератор случайных чисел по SH, pavlinux, 23:05 , 17-Май-11 (25)
>> Для портабильности придётся так: >> # od -N2 -x /dev/urandom | head -1 | cut -d" " >> -f2,2 > Во фряхе > > # od -N2 -x /dev/urandom | head -1 | cut -d" " > -f2,2 > # od -N2 -x /dev/urandom | head -1 > 0000000 9372 > А просто -f2 # od -N2 -x /dev/urandom | head -1 | cut -d" " -f2
- Генератор случайных чисел по SH, universite, 23:13 , 17-Май-11 (26)
> А просто -f2 > # od -N2 -x /dev/urandom | head -1 | cut -d" " > -f2 В линуксе отступ один пробел. Во фряхе аж 5!
- Генератор случайных чисел по SH, pavlinux, 23:20 , 17-Май-11 (27)
>> А просто -f2 >> # od -N2 -x /dev/urandom | head -1 | cut -d" " >> -f2 > В линуксе отступ один пробел. > Во фряхе аж 5!Пля... :) А так # od -N2 -x /dev/urandom | head -1 | cut -d" " -f2-
- Генератор случайных чисел по SH, universite, 01:05 , 19-Май-11 (29)
> Пля... :) > А так > # od -N2 -x /dev/urandom | head -1 | cut -d" " > -f2-так тоже не получается нужный результат, а вот так работает:
# od -N2 -x /dev/urandom | head -1 | sed 's/ //g' | cut -c 8-11 9f1c
но sed увеличивает время генерации :(
# time ./random-ipv6-address-generator.11.sh 0.216u 0.569s 0:00.57 135.0% 70+799k 0+0io 0pf+0w
- Генератор случайных чисел по SH, pavlinux, 01:13 , 19-Май-11 (30)
>[оверквотинг удален] >> А так >> # od -N2 -x /dev/urandom | head -1 | cut -d" " >> -f2- > так тоже не получается нужный результат, а вот так работает: > > # od -N2 -x /dev/urandom | head -1 | sed 's/ //g' > | cut -c 8-11 > 9f1c > > но sed увеличивает время генерации :( На то он и sed # od -N2 -x /dev/urandom | sed 's/\(.*\)\ //;1q'
:)
- Генератор случайных чисел по SH, Andrey Mitrofanov, 07:24 , 19-Май-11 (31)
>[оверквотинг удален] >> А так >> # od -N2 -x /dev/urandom | head -1 | cut -d" " >> -f2- > так тоже не получается нужный результат, а вот так работает: > > # od -N2 -x /dev/urandom | head -1 | sed 's/ //g' > | cut -c 8-11 > 9f1c > > но sed увеличивает время генерации :( Так пиши ж на C!? Ж) Ещё можно сервер на sed-е %) написать и клиентом читаить по одной строчке из пайпа... О! Предлагаю дописать urandom (на Си! в ядре!!), чтоб он сразу выдавал %4x:%4x:%4x:%4x. %)) (Где-то в /proc (но, да, linux-only/) можно генерить SID-ы. Почти ж оно!) --- $ time od -N $((8*25)) -x /dev/urandom |tr \\n X |sed 's/\(^\|X\)[0-9]* */:/g;s/ 0+/ /g;s/ /:/g;s/:*$\|^:*//g;s/\(\([^:]*:[^:]*\)\{4\}[^:]\):/\1\n/g;q' e21a:09bc:689a:ce35:e927 f56f:3dba:f439:4390:09d2 6ae6:216b:de7a:9490:10a5 e143:f274:f33c:4451:7eb3 d546:6811:f8db:a5e8:a446 1b7c:882e:11a7:b3e3:85e8 ffc6:5976:5fe3:49d7:616e 778c:0881:c35c:5cb5:2aec a00a:aae1:eb42:f32b:e209 88f0:e7cd:e9d3:cdfd:b8d1 da0c:ada1:72a8:ca61:ec1d 5a25:f61c:952a:5444:eef4 4f94:cff8:5086:5edc:8fdd d61b:66db:5b9c:c68e:91ad d95f:f277:0e1b:79c9:4f52 dcd7:ed7c:35c8:51f5:25f0 1310:cea2:a492:1668:9fa6 adf3:8870:6a38:4cd4:63a6 bc09:b069:859b:cbb3:51c5 b5a5:140d:aaf0:ebbf:2fb9 real 0m0.010s user 0m0.020s sys 0m0.000s $ _
- Генератор случайных чисел по SH, universite, 23:05 , 19-Май-11 (32)
> --- > $ time od -N $((8*25)) -x /dev/urandom |tr \\n X |sed 's/\(^\|X\)[0-9]* > */:/g;s/ 0+/ /g;s/ /:/g;s/:*$\|^:*//g;s/\(\([^:]*:[^:]*\)\{4\}[^:]\):/\1\n/g;q' У меня фряха не понимает
$((8*25)) Неверное имя переменной.
- Генератор случайных башизмов, Andrey Mitrofanov, 11:49 , 20-Май-11 (33)
> У меня фряха не понимает > $((8*25)) > Неверное имя переменной.Кто тут переходит с bash-а, я или ты?! $[8*25] //fixed
- Генератор случайных чисел по SH, pavlinux, 03:39 , 21-Май-11 (34) +1
>>[оверквотинг удален] > О! Предлагаю дописать urandom (на Си! в ядре!!), чтоб он сразу выдавал > %4x:%4x:%4x:%4x. %)) (Где-то в /proc (но, да, linux-only/) Зря ты это придумал... :) ipv6_suffix.c #include <linux/module.h> #include <linux/kernel.h> #include <linux/random.h> #include <linux/proc_fs.h>#define FORMAT "%02x%02x:%02x%02x:%02x%02x:%02x%02x\n" #define proc_name "ipv6_suffix" MODULE_AUTHOR("Opennet Software Foundation (c) 2011, Pavlinux special for Vladislav Prodan :)"); MODULE_LICENSE("GPL v2"); static unsigned char n[9]; static int put_ip(char *buf, char **start, off_t offset, int len, int *eof, void *data) { int ret = 0; if (offset > 0) { ret = 0; } else { get_random_bytes(n, 8); ret = sprintf(buf, FORMAT, n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7]); } *eof = 1; return ret; } static int rndip_init(void) { static struct proc_dir_entry *ptr; ptr = create_proc_entry(proc_name, S_IFREG | S_IRUGO, NULL); if (!ptr) { printk(KERN_WARNING "unable to create %s", proc_name); return -1; } ptr->read_proc = put_ip; ptr->size = 19; return 0; } static void __exit rndip_exit(void) { remove_proc_entry(proc_name, NULL); } module_init(rndip_init); module_exit(rndip_exit);
Makefile #### obj-m := ipv6_suffix.oall: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules clean: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
test.sh
#!/bin/shinsmod ./ipv6_suffix.ko; IPNET="2001:0db8:11a3:09d7" for ((i=0; i < 1000; i++)) do echo $IPNET:`cat /proc/ipv6_suffix` >> randomip.txt; done rmmod ipv6_suffix;
time ./test.sh real 0m2.940s user 0m0.606s sys 0m1.955s ----- Митрофаныч, с тебя под BSD или чистый asm :)
- Генератор случайных чисел по SH, pavlinux, 03:49 , 30-Мрт-17 (49)
- Генератор случайных чисел по SH, universite, 20:58 , 07-Июн-11 (36)
> --- > $ time od -N $((8*25)) -x /dev/urandom |tr \\n X |sed 's/\(^\|X\)[0-9]* > */:/g;s/ 0+/ /g;s/ /:/g;s/:*$\|^:*//g;s/\(\([^:]*:[^:]*\)\{4\}[^:]\):/\1\n/g;q' слишком сложное (затратное по CPU) преобразование. Может упростим задачу: есть 16 16-тиричных символа
tr -dc "[:xdigit:]" < /dev/urandom | head -c 16
или
openssl rand -hex 8
как вставить символ ":" через каждый 4-тый символ?
- Генератор случайных чисел по SH, Andrey Mitrofanov, 09:26 , 08-Июн-11 (37)
> tr -dc "[:xdigit:]" < /dev/urandom | head -c 16 |sed 's/..../:&/g;s/^://' Если : в начале можно использовать дальше, то второй s/ сократиткя. Может, ещё s/:0+/:/g;s/::+/:/ добавить...
- Генератор случайных чисел по SH, universite, 15:41 , 08-Июн-11 (42)
>> tr -dc "[:xdigit:]" < /dev/urandom | head -c 16 > |sed 's/..../:&/g;s/^://' > Если : в начале можно использовать дальше, то второй s/ сократиткя. > Может, ещё s/:0+/:/g;s/::+/:/ добавить...Думаю, это будет окончательный вариант. https://gist.github.com/1014255 А вот, оценка скорости выполнения:
# time sh random-ipv6-address-generator.15.sh 0.153u 0.187s 0:00.37 89.1% 332+614k 0+0io 0pf+0w # time sh random-ipv6-address-generator.16.sh 0.055u 0.197s 0:00.22 109.0% 75+1092k 0+0io 0pf+0w
- Генератор случайных чисел по SH, pavlinux, 00:57 , 10-Июн-11 (47)
>[оверквотинг удален] >> Если : в начале можно использовать дальше, то второй s/ сократиткя. >> Может, ещё s/:0+/:/g;s/::+/:/ добавить... > Думаю, это будет окончательный вариант. > https://gist.github.com/1014255 > А вот, оценка скорости выполнения: > > # time sh random-ipv6-address-generator.15.sh > 0.153u 0.187s 0:00.37 89.1% 332+614k 0+0io 0pf+0w > # time sh random-ipv6-address-generator.16.sh > 0.055u 0.197s 0:00.22 109.0% 75+1092k 0+0io 0pf+0w # Copyright Andrey Mitrofanov # Copyright pavlinux http://pavlinux.ru # Copyright click0 aka universite # 2011MAXCOUNT=20 network_v6=2a01:7a0:2:12 # your ipv6 network prefix psi=`openssl rand -hex $((8*($MAXCOUNT+1)))` echo "$MAXCOUNT случайных IPv6:" echo "-----------------" for ((count=0; count <= $MAXCOUNT; ++count, mod=count<<4)) do echo "$network_v6:${psi:mod:4}:${psi:((4+mod)):4}:${psi:((8+mod)):4}:${psi:((12+mod)):4}"; done
real 0m0.033s user 0m0.027s sys 0m0.013s
Если вместо count<<4, поставить 16*count, то на 1000 номеров уже потеряем 2 секунды.
- Генератор случайных чисел по SH, pavlinux, 00:27 , 10-Июн-11 (46)
- Генератор случайных чисел по SH, Andrey Mitrofanov, 14:40 , 08-Июн-11 (38)
>> Какие-то левые символы проскакивают... > # tr -dc a-f0-9 < /dev/urandom | tr "[=2=]" "2" | head > -c 256 Может быть, # LANG=C tr -dc a-f0-9 < /dev/urandom | head ... поможет? (А может, на UNIX-ах всё не так.)
- Генератор случайных чисел по SH, universite, 15:29 , 08-Июн-11 (41)
>>> Какие-то левые символы проскакивают... >> # tr -dc a-f0-9 < /dev/urandom | tr "[=2=]" "2" | head >> -c 256 > Может быть, > # LANG=C tr -dc a-f0-9 < /dev/urandom | head ...Это в Линуксе. В Фряхе похожее только
#env ... LANG=ru_RU.KOI8-R MM_CHARSET=KOI8-R
> поможет? (А может, на UNIX-ах всё не так.) Я всегда стараюсь убежать от игр с кодировкой в консоли и env - ибо всплывает куч проблем с кодировкой отличной от дефолтной.
- Генератор случайных чисел по SH, LSTemp, 04:51 , 17-Май-11 (9)
>[оверквотинг удален] > rnd_ipv6_block () > { > ## need bash! > a=${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]} > b=${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]} > c=${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]} > d=${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]}${array[$RANDOM%16]} > ipv6=$network_v6:$a:$b:$c:$d > } > где тут "в пределах заданной сети"? а если $network_v6 что-то больше, чем в данном банальном случае реализации? Цену решения огласи (https://www.opennet.ru/openforum/vsluhforumID9/9126.html)
- Генератор случайных чисел по SH, Andrey Mitrofanov, 14:51 , 08-Июн-11 (39)
> Скрипт генерирует произвольный адрес ipv6 в пределах заданной сети $network_v6 > На баше работает, но надо уйти от него на sh....и да, а где наши позиксивные друзья, когда они нужны?.... (А, вижу, там внизу - "ихде маи баппки".) > array=( 1 2 3 4 5 6 7 8 9 0 a > b c d e f ) > ipv6=$network_v6:$a:$b:$c:$d **Всё ещё пролетая над... и поднимая стакан сока за http://blog.sesse.net/blog/tech/2011-06-08-02-02_world_ipv6_... безвестных героев... Вопрос! А ipv6="`printf "%s::%x" $network_v6 $RANDOM`" # мо буть, даже $[RANDOM+OFFSET] не _достаточно_?! ...гм, надо :/ ранее выданные отсеивать-перегенерировать. Как там у классика?~ "32К адресов будет достаточно в _любом_ сегменте!" %))) **> ...кстати, "пролетая над Череповцом"(с), придумалось:
- Генератор случайных чисел по SH, universite, 15:25 , 08-Июн-11 (40)
>> Скрипт генерирует произвольный адрес ipv6 в пределах заданной сети $network_v6 >> На баше работает, но надо уйти от него на sh. > ...и да, а где наши позиксивные друзья, когда они нужны?.... (А, вижу, > там внизу - "ихде маи баппки".) +1 >> array=( 1 2 3 4 5 6 7 8 9 0 a >> b c d e f ) >> ipv6=$network_v6:$a:$b:$c:$d > **Всё ещё пролетая над... и поднимая стакан сока за http://blog.sesse.net/blog/tech/2011-06-08-02-02_world_ipv6_... > безвестных героев... > Вопрос! А > ipv6="`printf "%s::%x" $network_v6 $RANDOM`" # мо буть, даже $[RANDOM+OFFSET] > не _достаточно_?! ...гм, надо :/ ранее выданные отсеивать-перегенерировать. Только в баше есть рандом. Тебе выдали блок /64 на сервер и тебе надо каждому сайту выделить свой Ipv6. Ладно создать ручками пару ip, а когда сайтов сотни? > Как там у классика?~ "32К адресов будет достаточно в _любом_ сегменте!" %))) > **> ...кстати, "пролетая над Череповцом"(с), придумалось: Не смешно. Мало того, что производители железа (свитчи, роутеры) тупят с полноценной поддержкой ipv6, так и в куче прикладного софта полно багов с ipv6...
- Генератор случайных чисел по SH, ACCA, 23:25 , 08-Июн-11 (43)
> Только в баше есть рандом. > Тебе выдали блок /64 на сервер и тебе надо каждому сайту выделить > свой Ipv6. > Ладно создать ручками пару ip, а когда сайтов сотни?Отдай их последовательно, нафига там RANDOM?
PREFIX=$1 DT=$(date +%s) DATE=$(printf %x $(expr $DT % 65536)) TIME=$(printf %x $(expr $DT % 65536)) CNT=1rnd_ipv6_block () { X=$(printf %x $CNT) (( CNT += 1 )) ipv6=$network_v6:$PREFIX:$DATE:$TIME:${X}0 }
- Генератор случайных чисел по SH, universite, 23:33 , 08-Июн-11 (44)
>[оверквотинг удален] > DATE=$(printf %x $(expr $DT % 65536)) > TIME=$(printf %x $(expr $DT % 65536)) > CNT=1 > rnd_ipv6_block () > { > X=$(printf %x $CNT) > (( CNT += 1 )) > ipv6=$network_v6:$PREFIX:$DATE:$TIME:${X}0 > } > Сеошники не любят последовательно. Они надеются, что если выдавать произвольный адрес из пула - гугл не спалит, что блок привязан к одному серверу :)
- Генератор случайных чисел по SH, allez, 10:32 , 09-Июн-11 (45)
> Сеошники не любят последовательно. > Они надеются, что если выдавать произвольный адрес из пула - гугл не > спалит, что блок привязан к одному серверу :) А если этот последовательный список потом перемешивать с помощью все того же shuf?
- Генератор случайных чисел по SH, ACCA, 15:49 , 11-Июн-11 (48)
>> Сеошники не любят последовательно. >> Они надеются, что если выдавать произвольный адрес из пула - гугл не >> спалит, что блок привязан к одному серверу :) > А если этот последовательный список потом перемешивать с помощью все того же > shuf?Не поможет - гуглу всё равно, из чего кластер данных лепить. Общий провайдер, общий движок общие темплеты, общая подсеть, просто ссылаются только друг на друга без учёта смысла. Вычисляет тесный мир, а потом всю шоблу - в конец поисковой выдачи. SEOшники разве что на некропостах трафик отжимают, когда к ним приходят по старым ссылкам. Гуглы уже вполне прилично отсеивают Content Factory.
|