Fórum Root.cz

Hlavní témata => Sítě => Téma založeno: tuxmartin 26. 08. 2019, 20:29:48

Název: Převedení rozsahu IPv6 adres na CIDR formát
Přispěvatel: tuxmartin 26. 08. 2019, 20:29:48
Ahoj,
snazim se prevest rozsahy IPv4 a IPv6 adres na CIDR format - adresaSite/prefix(maska).

Ukazkovy vstup:
Kód: [Vybrat]
108.170.192.0-108.170.255.255
2620:E7:4000::-2620:E7:4000:FFFF:FFFF:FFFF:FFFF:FFFF

Pozadovany vystup:
Kód: [Vybrat]
108.170.192.0/18
2620:E7:4000::/48

a co mi to (ne)dela:
Kód: [Vybrat]
martin@martin:~$ ipcalc "108.170.192.0-108.170.255.255" | sed '2!d'
108.170.192.0/18
martin@martin:~$ ipcalc "2620:E7:4000::-2620:E7:4000:FFFF:FFFF:FFFF:FFFF:FFFF" | sed '2!d'   # na ubuntu 16.04
INVALID ADDRESS2: 2620:E7:4000:FFFF:FFFF:FFFF:FFFF:FFFF
martin@martin:~$
martin@martin:~$ ipcalc "2620:E7:4000::-2620:E7:4000:FFFF:FFFF:FFFF:FFFF:FFFF" | sed '2!d'   # na ubuntu 18.04
ipcalc: bad IPv6 address: 2620:E7:4000::-2620:E7:4000:FFFF:FFFF:FFFF:FFFF:FFFF

Jak se da v shellu rozsahu IPv6 adres prevest na tvar sit/prefix?
Me uz dosly napady :-(
Název: Re:Převedení rozsahu IPv6 adres na CIDR formát
Přispěvatel: Filip Jirsák 26. 08. 2019, 21:10:17
Příkaz ipcalc počítá jen s IPv4. Zkuste najít nějaký jiný nástroj, který bude umět (i) IPv6, Google poradil třeba subnetcalc.
Název: Re:Převedení rozsahu IPv6 adres na CIDR formát
Přispěvatel: tuxmartin 26. 08. 2019, 21:35:49
Příkaz ipcalc počítá jen s IPv4. Zkuste najít nějaký jiný nástroj, který bude umět (i) IPv6, Google poradil třeba subnetcalc.

Proto jsem prave daval ukazku ubuntu 16.04 a 18.04. V 18.04 uz ipcalc umi IPv6:
Kód: [Vybrat]
NAME
       ipcalc - perform simple manipulation of IP addresses

SYNOPSIS
       ipcalc [OPTION]... <IP address>[/prefix] [netmask]

DESCRIPTION
       ipcalc  provides a simple way to calculate IP information for a host.  The various options specify what information ipcalc should display on standard out. Multiple options may be
       specified.  An IP address to operate on must always be specified.  Most operations also require a netmask or a CIDR prefix as well.

OPTIONS
       -c, --check
              Validate the IP address under the specified family.  If no address family is specified, IPv4 is assumed.

       -4, --ipv4
              Specify IPv4 address family (default).

       -6, --ipv6
              Specify IPv6 address family.


subnetcalc chce vstup ve tvaru IP prefix :-(
Kód: [Vybrat]
subnetcalc 2a00:1450:8007::69 64
Uz jsem tech programu zkusil hodne a zatim zadny nefunguje.
Název: Re:Převedení rozsahu IPv6 adres na CIDR formát
Přispěvatel: DgBd 26. 08. 2019, 22:37:44
Kód: [Vybrat]
$ python3

>>>from netaddr import *
>>>from pprint import *

>>>a = IPRange("2620:E7:4000::","2620:E7:4000:FFFF:FFFF:FFFF:FFFF:FFFF")
>>>pprint(a)
IPRange('2620:e7:4000::', '2620:e7:4000:ffff:ffff:ffff:ffff:ffff')
>>>pprint(a.cidrs())
[IPNetwork('2620:e7:4000::/48')]

Název: Re:Převedení rozsahu IPv6 adres na CIDR formát
Přispěvatel: Mr.Kef 27. 08. 2019, 07:31:48
http://www.potato-people.com/blog/2009/02/ipv6-subnet-size-reference-table/
Název: Re:Převedení rozsahu IPv6 adres na CIDR formát
Přispěvatel: tuxmartin 27. 08. 2019, 13:46:17
Kód: [Vybrat]
$ python3

>>>from netaddr import *
>>>from pprint import *

>>>a = IPRange("2620:E7:4000::","2620:E7:4000:FFFF:FFFF:FFFF:FFFF:FFFF")
>>>pprint(a)
IPRange('2620:e7:4000::', '2620:e7:4000:ffff:ffff:ffff:ffff:ffff')
>>>pprint(a.cidrs())
[IPNetwork('2620:e7:4000::/48')]

Skvele, funguje. Diky!