Převedení rozsahu IPv6 adres na CIDR formát

Převedení rozsahu IPv6 adres na CIDR formát
« kdy: 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 :-(
"Kdo v zájmu bezpečí obětuje část své svobody, v konečném důsledku přijde o svobodu i svou bezpečnost."


Re:Převedení rozsahu IPv6 adres na CIDR formát
« Odpověď #1 kdy: 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.

Re:Převedení rozsahu IPv6 adres na CIDR formát
« Odpověď #2 kdy: 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.
"Kdo v zájmu bezpečí obětuje část své svobody, v konečném důsledku přijde o svobodu i svou bezpečnost."

DgBd

  • ****
  • 282
    • Zobrazit profil
    • E-mail
Re:Převedení rozsahu IPv6 adres na CIDR formát
« Odpověď #3 kdy: 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')]




Re:Převedení rozsahu IPv6 adres na CIDR formát
« Odpověď #5 kdy: 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!
"Kdo v zájmu bezpečí obětuje část své svobody, v konečném důsledku přijde o svobodu i svou bezpečnost."