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

ipcalc

Добавлено: 2007-10-02 9:07:38
schizoid
наверна в раздел мелочи.

Итак. Утилитка для расчета сетевых адресов.

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

# whereis ipcalc
ipcalc: /usr/ports/net-mgmt/ipcalc
Присутствует, хорошо, идем по указанному пути.

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

# cd /usr/ports/net-mgmt/ipcalc
# make install clean
===>  Vulnerability check disabled, database not found
===>  Extracting for ipcalc-0.40
=> MD5 Checksum OK for ipcalc-0.40.tar.gz.
===>   ipcalc-0.40 depends on file: /usr/local/bin/perl5.8.5 - found
===>  Patching for ipcalc-0.40
===>   ipcalc-0.40 depends on file: /usr/local/bin/perl5.8.5 - found
===>   ipcalc-0.40 depends on file: /usr/local/bin/perl5.8.5 - found
===>  Configuring for ipcalc-0.40
===>  Installing for ipcalc-0.40
===>   ipcalc-0.40 depends on file: /usr/local/bin/perl5.8.5 - found
===>   Generating temporary packing list
===>  Checking if net-mgmt/ipcalc already installed
install  -o root -g wheel -m 555 /usr/ports/net-mgmt/ipcalc/work/ipcalc-0.40/ipcalc /usr/local/bin/ipcalc
===>   Registering installation for ipcalc-0.40
===>  Cleaning for perl-5.8.8
===>  Cleaning for ipcalc-0.40
Вот собственно и все :)
Проверяем:

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

# ipcalc 192.168.0.0/16
Address:   192.168.0.0          11000000.10101000. 00000000.00000000
Netmask:   255.255.0.0 = 16     11111111.11111111. 00000000.00000000
Wildcard:  0.0.255.255          00000000.00000000. 11111111.11111111
=>
Network:   192.168.0.0/16       11000000.10101000. 00000000.00000000
HostMin:   192.168.0.1          11000000.10101000. 00000000.00000001
HostMax:   192.168.255.254      11000000.10101000. 11111111.11111110
Broadcast: 192.168.255.255      11000000.10101000. 11111111.11111111
Hosts/Net: 65534                 Class C, Private Internet
И даже так:

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

# ipcalc 192.168.0.0 255.255.248.0
Address:   192.168.0.0          11000000.10101000.00000 000.00000000
Netmask:   255.255.248.0 = 21   11111111.11111111.11111 000.00000000
Wildcard:  0.0.7.255            00000000.00000000.00000 111.11111111
=>
Network:   192.168.0.0/21       11000000.10101000.00000 000.00000000
HostMin:   192.168.0.1          11000000.10101000.00000 000.00000001
HostMax:   192.168.7.254        11000000.10101000.00000 111.11111110
Broadcast: 192.168.7.255        11000000.10101000.00000 111.11111111
Hosts/Net: 2046                  Class C, Private Internet
При чем все цветное и красивое. Все. Пользуйтесь :)

Re: ipcalc

Добавлено: 2007-10-02 10:17:55
-cat-
Добавлю свои 5 копеек: :)
Использование: ipcalc [options] <ADDRESS>[[/]<NETMASK>] [NETMASK]

IPCALC вычисляет широковещательный адрес, диапазон хостов, шаблон сетевой маски по полученному IP и сетевой маске.
Может использоваться для конструирования сетей и подсетей, а также в обучающих целях.

Опции:
-n --nocolor Подавить вывод цветов.
-b --nobinary Подавить поразрядный вывод.
-c --class Показать маску сети по адресу.
-h --html Показать результаты в HTML (не реализовано в этой версии).
-v --version Показать версию программы.
-s --split n1 n2 n3 Разделить сети по размеру n1, n2, n3.
-r --range Исключить диапазон адресов .
--help Помощь.
Где ошибся - исправьте.

Re: ipcalc

Добавлено: 2007-10-02 10:25:43
Alex Keda
зер гуд :)

Re: ipcalc

Добавлено: 2007-10-02 10:26:56
schizoid
точна :) фпечать !

Re: ipcalc

Добавлено: 2007-10-03 8:47:24
schizoid
А какой номер раздела "Мелочи" ?

Re: ipcalc

Добавлено: 2007-10-03 9:50:24
schizoid
статью разместил, но она пока скрытая...че делать дальше? открывать или еще будет рецензия?

Re: ipcalc

Добавлено: 2007-10-03 12:55:05
Alex Keda
опубликовал, спам разослал :)

Re: ipcalc

Добавлено: 2007-10-03 13:35:15
dikens3
Ещё есть полезная фича - деление на подсети:
К примеру нужно из /24 получить сколько то /25 и т.п.

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

gateway# ipcalc 192.168.10.0/24 /25
Address:   192.168.10.0         11000000.10101000.00001010. 00000000
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.10.0/24      11000000.10101000.00001010. 00000000
HostMin:   192.168.10.1         11000000.10101000.00001010. 00000001
HostMax:   192.168.10.254       11000000.10101000.00001010. 11111110
Broadcast: 192.168.10.255       11000000.10101000.00001010. 11111111
Hosts/Net: 254                   Class C, Private Internet

Subnets after transition from /24 to /25

Netmask:   255.255.255.128 = 25 11111111.11111111.11111111.1 0000000
Wildcard:  0.0.0.127            00000000.00000000.00000000.0 1111111

 1.
Network:   192.168.10.0/25      11000000.10101000.00001010.0 0000000
HostMin:   192.168.10.1         11000000.10101000.00001010.0 0000001
HostMax:   192.168.10.126       11000000.10101000.00001010.0 1111110
Broadcast: 192.168.10.127       11000000.10101000.00001010.0 1111111
Hosts/Net: 126                   Class C, Private Internet

 2.
Network:   192.168.10.128/25    11000000.10101000.00001010.1 0000000
HostMin:   192.168.10.129       11000000.10101000.00001010.1 0000001
HostMax:   192.168.10.254       11000000.10101000.00001010.1 1111110
Broadcast: 192.168.10.255       11000000.10101000.00001010.1 1111111
Hosts/Net: 126                   Class C, Private Internet


Subnets:   2
Hosts:     252
Или на 4 подсети:

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

gateway# ipcalc 192.168.10.0/24 /26
Address:   192.168.10.0         11000000.10101000.00001010. 00000000
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   192.168.10.0/24      11000000.10101000.00001010. 00000000
HostMin:   192.168.10.1         11000000.10101000.00001010. 00000001
HostMax:   192.168.10.254       11000000.10101000.00001010. 11111110
Broadcast: 192.168.10.255       11000000.10101000.00001010. 11111111
Hosts/Net: 254                   Class C, Private Internet

Subnets after transition from /24 to /26

Netmask:   255.255.255.192 = 26 11111111.11111111.11111111.11 000000
Wildcard:  0.0.0.63             00000000.00000000.00000000.00 111111

 1.
Network:   192.168.10.0/26      11000000.10101000.00001010.00 000000
HostMin:   192.168.10.1         11000000.10101000.00001010.00 000001
HostMax:   192.168.10.62        11000000.10101000.00001010.00 111110
Broadcast: 192.168.10.63        11000000.10101000.00001010.00 111111
Hosts/Net: 62                    Class C, Private Internet

 2.
Network:   192.168.10.64/26     11000000.10101000.00001010.01 000000
HostMin:   192.168.10.65        11000000.10101000.00001010.01 000001
HostMax:   192.168.10.126       11000000.10101000.00001010.01 111110
Broadcast: 192.168.10.127       11000000.10101000.00001010.01 111111
Hosts/Net: 62                    Class C, Private Internet

 3.
Network:   192.168.10.128/26    11000000.10101000.00001010.10 000000
HostMin:   192.168.10.129       11000000.10101000.00001010.10 000001
HostMax:   192.168.10.190       11000000.10101000.00001010.10 111110
Broadcast: 192.168.10.191       11000000.10101000.00001010.10 111111
Hosts/Net: 62                    Class C, Private Internet

 4.
Network:   192.168.10.192/26    11000000.10101000.00001010.11 000000
HostMin:   192.168.10.193       11000000.10101000.00001010.11 000001
HostMax:   192.168.10.254       11000000.10101000.00001010.11 111110
Broadcast: 192.168.10.255       11000000.10101000.00001010.11 111111
Hosts/Net: 62                    Class C, Private Internet


Subnets:   4
Hosts:     248

Re: ipcalc

Добавлено: 2007-10-03 14:16:16
schizoid
действительно полезная, нуно добавить с статью :)

Re: ipcalc

Добавлено: 2007-10-03 14:39:59
Alex Keda
schizoid писал(а):действительно полезная, нуно добавить с статью :)
дык - добавь! :)

Re: ipcalc

Добавлено: 2007-10-03 15:13:14
schizoid
так ужо ;)

Re: ipcalc

Добавлено: 2007-10-03 20:11:47
Andy
И еще объяснение бы в статью, как все это дело в уме считать, цены бы небыло!

Re: ipcalc

Добавлено: 2007-10-04 8:48:00
schizoid
что в уме считать?

Re: ipcalc

Добавлено: 2007-10-04 8:55:04
schizoid
ну к примеру сеть /24, самая распространенная
сеть длиной /24 соответствует маске 255.255.255.0
как это считается?
24=8+8+8+0
255 в двоичной системе равно 11111111, т.е. 8-мь единиц (128+64+32+16+8+4+2+1)
т.е. 1-й октет у нас равен 8, также 2-й и 3-й, последний 0. вот и получаем 8+8+8+0=24
-----
это про маску

про ИП адреса позже. и так замучился писать :)
может где в вики это описано :)

Re: ipcalc

Добавлено: 2007-10-04 10:23:12
dikens3
В подготовке к ccna описано.

На ftp у лиса это есть.

Re: ipcalc

Добавлено: 2007-10-04 19:32:25
Andy
schizoid писал(а):ну к примеру сеть /24, самая распространенная
Это я знаю как считается, а /29? :)

Re: ipcalc

Добавлено: 2007-10-04 22:35:46
dikens3
Правило 1: В маске нули могут быть только в конце, т.е. не может быть такого:
11111111 1111111 10111111 00000000
Правило 2: В маске 32 бита и Маска /X обозначает количество бит слева, установленных в 1 (единицу). Считать всегда придётся только 1 байт.
Правило 3: Знать на память десятичные данные:128+64+32+16+8+4+2+1 (Каждая цифра суммируется, еcли бит равен 1(единице))
Это я знаю как считается, а /29?
Ну всего битов 32 (4 байта)
8*3 = 24, получаем 255.255.255.X
29-24=5 , т.е. ещё 5 включённых битов.

В двоичной системе это будет уже так:
3 байта одни 1 (единицы) + 5 битов (тоже единицы) + 3 нуля
Получаем 111111111 11111111 11111111 11111000

Теперь нужно найти наш Х
128+64+32+16+8+4+2+1 (Несложно, всё делится на 2)
1 1 1 1 1 0 0 0

А сейчас считаем сумму где есть бит установленный в 1 (единицу)
128+64+32+16+8+0+0+0=248 (/29)
или наоброт, считаем 4+2+1=7 255-7=248 :-)

P.S. Мне с битами очень легко работать, а писал на ассемблере, и ошибка в бите могла (И часто приводила) привести к потере всей программы. :-)

Из верхних примеров:

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

Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Netmask:   255.255.255.128 = 25 11111111.11111111.11111111.1 0000000
Netmask:   255.255.255.192 = 26 11111111.11111111.11111111.11 000000

Re: ipcalc

Добавлено: 2007-10-05 0:11:19
Andy
dikens3 писал(а):P.S. Мне с битами очень легко работать, а писал на ассемблере, и ошибка в бите могла (И часто приводила) привести к потере всей программы. :-)
За объяснения спасибо. Ты вирусы писал, что ошибка могла к потере программы привести?
p.S: когда писал на асме, я шестнадцатиричной системой счисления пользовался.

Re: ipcalc

Добавлено: 2007-10-05 9:33:53
dikens3
когда писал на асме, я шестнадцатиричной системой счисления пользовался.
Тогда непонятно почему ты это непонимаешь.
Ты вирусы писал, что ошибка могла к потере программы привести?
Нет, просто тогда дискет небыло и требовалось записывать на магнитофон. :-)
Если в программе что не так, комп перезапускался и ппц проге. :-)
Там же есть XOR/OR/AND :-)

Пример:
Есть вся программа в памяти по адресу: #0800-#0A00
Допустим в этой программе есть картинка по адресам: #0900-#0A00

Запускаем код #0800

Иногда блок перемещаемых данных(#0900-#0A00), куда он будет записан, получается посредством каких-либо операций XOR/OR/AND.
Отсюда имеем, если адрес назначения будет #0800 тогда что? Правильно ппц нашей проге. Ассемблеру пофиг, он отработает всё как надо. :-)

Re: ipcalc

Добавлено: 2007-10-05 13:06:02
Andy
dikens3 писал(а):Тогда непонятно почему ты это непонимаешь.
Так у меня был калькулятор в Dos Navigator'е, я им пользовался, а в уме не считал.
dikens3 писал(а): Нет, просто тогда дискет небыло и требовалось записывать на магнитофон. :-)
Если в программе что не так, комп перезапускался и ппц проге. :-)
Там же есть XOR/OR/AND :-)
Понятно, ты про Z80 асм. Не знаю его, к сожалению. Я на 8086 немного прогал.
dikens3 писал(а): Пример:
Есть вся программа в памяти по адресу: #0800-#0A00
Допустим в этой программе есть картинка по адресам: #0900-#0A00
Кстати, в Z80 flat модель памяти? или страничная?
dikens3 писал(а): Запускаем код #0800
Иногда блок перемещаемых данных(#0900-#0A00), куда он будет записан, получается посредством каких-либо операций XOR/OR/AND.
Отсюда имеем, если адрес назначения будет #0800 тогда что? Правильно ппц нашей проге. Ассемблеру пофиг, он отработает всё как надо. :-)
Вот тут не уловил, ты имеешь ввиду зашифрованную картинку по адресу #0900 или вычисление адреса происходит побитовыми операциями?

Re: ipcalc

Добавлено: 2007-10-05 15:56:35
dikens3
Вот тут не уловил, ты имеешь ввиду зашифрованную картинку по адресу #0900 или вычисление адреса происходит побитовыми операциями?
Забей.
Кстати, в Z80 flat модель памяти? или страничная?
Я знаю только одну модель и выглядит она так:
Есть вся пять начиная от 1-65535
Память с адресами 1-16384 зарезервирована под процессорные команды (ПЗУ) (В данном диапазоне уже есть данные, они всегда одинаковые и выполняют определённые действия)

Ещё есть определенный диапазон для экрана, т.е. к примеру с 16385-20000 (Я не помню уже сколько точно, образно)
В итоге под ассемблерный код остаётся с 20000-65535
Если нужно что-то отобразить на экране, блок данных переписывается в область 16385-20000)
Теперь предположим нам не хватает диапазона 20000-65535?
Тогда делаем:
A=1
Выполнить код по адресу 10000 (Т.е. из ПЗУ - JP #2710)
В итоге включаем другую страницу равную 1 (единице) и записываем/извлекаем что нам нужно в диапазоне 49152-65535.
В итоге имеем 4 страницы памяти для 64Мб. :-)

Наверное страничная.

Re: ipcalc

Добавлено: 2007-10-06 16:33:31
dikens3
Читаю книгу - Криминалистический анализ файловых систем. (У лиса на ftp в upload пока лежит)
Страница 39 - перевод из 2-ичной в 10-ичную.