Device-Network-ConfigParser
view release on metacpan or search on metacpan
lib/Device/Network/ConfigParser/Linux/NetUtils.pm view on Meta::CPAN
sub get_parser {
return new Parse::RecDescent(q{
<autoaction: { [@item] }>
startrule: config_line(s) { $item[1] }
config_line:
ifconfig(s) { { ifconfig => $item{'ifconfig(s)'} } } |
not_parsed { $item[1] }
ifconfig:
interface encap hw_addr(?) inet(?) inet6(s?) flag(s) mtu if_metric rx_stats tx_stats rx_bytes tx_bytes {
{
interface => $item{interface},
encapsulation => $item{encap},
hw_addr => $item{'hw_addr(?)'},
inet => $item{'inet(?)'},
inet6 => $item{'inet6(s?)'},
flags => $item{'flag(s)'},
mtu => $item{mtu},
metric => $item{if_metric},
rx_stats => $item{rx_stats},
tx_stats => $item{tx_stats},
rx_bytes => $item{rx_bytes},
tx_bytes => $item{tx_bytes},
}
}
lib/Device/Network/ConfigParser/Linux/NetUtils.pm view on Meta::CPAN
{
address => $item{inet_addr},
mask => $item{inet_mask},
broadcast => $item{'inet_bcast(?)'}
}
}
inet_addr: 'inet addr:' ipv4 { $item{ipv4} }
inet_bcast: 'Bcast:' ipv4 { $item{ipv4} }
inet_mask: 'Mask:' netmask { $item{netmask} }
inet6: inet6_addr inet6_mask inet6_scope {
{
address => $item{inet6_addr},
mask => $item{inet6_mask},
scope => $item{inet6_scope}
}
}
inet6_addr: 'inet6 addr:' ipv6 { $item{ipv6} }
inet6_mask: '/' m{\d{1,3}} { $item{__PATTERN1__} }
inet6_scope: 'Scope:' m{\w+} { $item{__PATTERN1__} }
flag: m{UP|BROADCAST|RUNNING|MULTICAST|LOOPBACK} { $item{__PATTERN1__} }
mtu: 'MTU:' m{\d+} { $item{__PATTERN1__} }
if_metric: 'Metric:' m{\d+} { $item{__PATTERN1__} }
rx_stats: 'RX packets:' m{\d+} 'errors:' m{\d+} 'dropped:' m{\d+} 'overruns:' m{\d+} 'frame:' m{\d+} {
{
packets => $item{__PATTERN1__},
errors => $item{__PATTERN2__},
dropped => $item{__PATTERN3__},
overruns => $item{__PATTERN4__},
( run in 0.539 second using v1.01-cache-2.11-cpan-87723dcf8b7 )