#!/bin/sh
#
# Copyright (C) 1995  Lars Berntzon
#
PATH=$PATH:/etc
devices=`netstat -in | $AWK 'NR>=2 && $0~/^[a-zA-Z_]/ && $4 !~/^127.0/{print $1}'`
for d in $devices
do
    ifconfig "$d" 2> /dev/null | $AWK '
    function hex(v) {
	n[1] = substr(v, 1, 1);
	n[2] = substr(v, 2, 1);
	sum = 0;
	for(i = 1; i < 3; i++) {
	     sum *= 16;
	     if (n[i] == "0") sum += 0;
	     else if (n[i] == "1") sum += 1;
	     else if (n[i] == "2") sum += 2;
	     else if (n[i] == "3") sum += 3;
	     else if (n[i] == "4") sum += 4;
	     else if (n[i] == "5") sum += 5;
	     else if (n[i] == "6") sum += 6;
	     else if (n[i] == "7") sum += 7;
	     else if (n[i] == "8") sum += 8;
	     else if (n[i] == "9") sum += 9;
	     else if (n[i] == "a") sum += 10;
	     else if (n[i] == "b") sum += 11;
	     else if (n[i] == "c") sum += 12;
	     else if (n[i] == "d") sum += 13;
	     else if (n[i] == "e") sum += 14;
	     else if (n[i] == "f") sum += 15;
	}
	return sum;
    }

    $1=="inet" {
	split($2, ip, ".");
	nm[1] = hex(substr($4, 1, 2));
	nm[2] = hex(substr($4, 3, 2));
	nm[3] = hex(substr($4, 5, 2));
	nm[4] = hex(substr($4, 7, 2));
	for(i = 1; i < 5; i++) {
	    nm[i] = 256 - nm[i];
	    ip[i] -= ip[i] % nm[i]
	}
	print ip[1] "." ip[2] "." ip[3] "." ip[4]
    }'
done
