| verzia 1.3, 2006/01/12 19:06:36 |
verzia 1.4, 2006/01/12 19:28:46 |
|
|
| #!/usr/bin/awk -v FS="[: \t]+" -f |
#!/usr/bin/awk -f |
| |
|
| # |
# |
| # ifconfig-parse.awk - parse output from ifconfig and print |
# ifconfig-parse.awk - parse output from ifconfig and print |
|
|
| |
|
| BEGIN { |
BEGIN { |
| iface_count = 0; |
iface_count = 0; |
| SUBSEP = ":"; |
|
| } |
} |
| |
|
| /^[a-zA-Z0-9:]+[ \t]+/ { # Linux |
/^[a-zA-Z0-9:]+[ \t]+/ { # Linux interface |
| iface = $1; |
split($1, fields, ":"); |
| |
iface = fields[1]; |
| ipcount[iface]++; |
ipcount[iface]++; |
| |
hwaddr[iface] = $NF; |
| iface_count++; |
iface_count++; |
| } |
} |
| |
|
| /^[ \t]+inet addr:/ { # Linux |
/^[ \t]+inet addr:/ { # Linux IP address |
| split($0, fields, "[ \t:]+"); |
split($0, fields, "[ \t:]+"); |
| ip[iface, ipcount[iface]] = fields[4]; |
ip[iface, ipcount[iface]] = fields[4]; |
| bcast[iface] = fields[6]; # bad for loopback interface, but we don't need this |
bcast[iface] = fields[6]; # bad for loopback interface, but we don't need this |
| mask[iface] = fields[NF]; |
idx = length(fields); |
| |
mask[iface] = fields[idx]; |
| } |
} |
| |
|
| /^[ \t]+inet6 addr:/ { # Linux |
/^[ \t]+inet6 addr:/ { # Linux IPv6 address |
| split($0, fields, "[ \t]+"); |
split($0, fields, "[ \t]+"); |
| ip6[iface] = fields[4]; |
ip6[iface] = fields[4]; |
| scope6[iface] = fields[5]; |
scope6[iface] = fields[5]; |
|
|
| for (i in scope6) { printf "SCOPE_6_%s=\"%s\"; export SCOPE_6_%s;\n", i, scope6[i], i; } |
for (i in scope6) { printf "SCOPE_6_%s=\"%s\"; export SCOPE_6_%s;\n", i, scope6[i], i; } |
| for (i in bcast) { printf "Bcast_%s=\"%s\"; export Bcast_%s;\n", i, bcast[i], i; } |
for (i in bcast) { printf "Bcast_%s=\"%s\"; export Bcast_%s;\n", i, bcast[i], i; } |
| for (i in mask) { printf "Mask_%s=\"%s\"; export Mask_%s;\n", i, mask[i], i; } |
for (i in mask) { printf "Mask_%s=\"%s\"; export Mask_%s;\n", i, mask[i], i; } |
| |
for (i in hwaddr) { printf "HWaddr_%s=\"%s\"; export HWaddr_%s;\n", i, hwaddr[i], i; } |
| for (i in ipcount) { printf "IPcount_%s=\"%s\"; export IPcount_%s;\n", i, ipcount[i], i; } |
for (i in ipcount) { printf "IPcount_%s=\"%s\"; export IPcount_%s;\n", i, ipcount[i], i; } |
| for (i in ipcount) { |
for (i in ipcount) { |
| printf "IP_%s=\"", i; |
printf "IP_%s=\"", i; |