in reply to Convert SNMP Octet String to Array
If I understand what you are asking then:
use warnings; use strict; my $ports = '0xFFFBFF0000000000000000'; my $basePort = 1; my @ports; $ports = substr $ports, 2; while ($ports) { my $octet = hex substr $ports, 0, 2, ''; my $index = 0; while ($octet) { next unless $octet & 0x80; push @ports, $basePort + $index; } continue { ++$index; $octet = ($octet << 1) & 0xff; } $basePort += 8; } print join '.', @ports;
which prints:
1.2.3.4.5.6.7.8.9.10.11.12.13.15.16.17.18.19.20.21.22.23.24
seems to be a solution, although I don't see how that relates to the initial port string in your sample code.
|
|---|