… или что бывает когда маньякам скучно
Преобразовываем IP адрес в строчку битов, одной строчкой
Или тоже самое, но в несколько строк, с пробелами и комментариями
# Разделяем адрес на октеты ("192.168.1.1".split(".")| # Foreach-Object %{ # Помещаем текущий октет в переменную $o $o=$_; # for ($_ = 7; $_ -ge 0; $_ --) {... 7..0|%{ # Возводим 2 в степень текущего числа содержащегося в # переменной $_. Делаем binary and с текущим октетом, преобразуем в # [bool] (нули станут $false, а остальные числа - $true. Преобразуем в # [int] ($true становится 1, а $false - 0). [int][bool]($o -band [math]::pow(2,$_)) } # объединяем получившийся массив битов в строчку }) -join ""
Гложет подозрение что это делается сильно проще и короче
Подскажите кто-нибудь пожалуйста
UPD: Спасибо Вадиму, в результате получилось вполне адекватно и в 2 раза короче
[convert]::ToString(([net.ipaddress]”192.168.1.1″).address,2)
Вру, не то получается…









System.Convert.ToString(value, toBase)?
хотя биты тоже неплохо
Комментарий от Vadim — 13.3.2008 @ 16:54
2 Vadim: Сорри, у меня тут д.р. у сотрудницы, я может туплю, но что подставлять в toBase?
а то там оверлоадов ужас сколько 
Value – это будет ведь «192.168.1.1″?
Комментарий от Xaegr — 13.3.2008 @ 17:14
не

value – числа 192, 168, 1, 1 на выбор
toBase должно быть 2!
позволит избавиться от возни с битами
Комментарий от Vadim — 13.3.2008 @ 17:37
не факт, что короче получится, конечно
но проще
Комментарий от Vadim — 13.3.2008 @ 17:39
Вот чувствовал я что в .Net уже есть что то мне в помощь
Спасибо! 
Хотя не сильно короче вышло…
(«192.168.1.1″.split(«.»)|%{[System.Convert]::ToString($_,2).PadLeft(8,»0″)}) -join «»
Комментарий от Xaegr — 13.3.2008 @ 17:43
Вот что вытворил в результате
[convert]::ToString(([net.ipaddress]«192.168.1.1″).address,2)
Комментарий от Xaegr — 13.3.2008 @ 20:14
А зачем преобразовывать в строку? Где такое может понадобится?
Обычно адрес переводят в 4 байта, чтобы места при хранении меньше занимало: IP-адрес = 4 байт, и ни битом больше!
Комментарий от Ugnich Anton — 14.3.2008 @ 16:14
2 Ugnich Anton: Я же написал в начале – «маньякам скучно»
Мне хотелось именно посмотреть на биты
Комментарий от Xaegr — 14.3.2008 @ 16:16