diff --git a/bindings/dotnet/examples/Ifconfig.cs b/bindings/dotnet/examples/Ifconfig.cs new file mode 100644 index 00000000..9829796d --- /dev/null +++ b/bindings/dotnet/examples/Ifconfig.cs @@ -0,0 +1,90 @@ +using System; +using Hyperic.Sigar; + +public class Ifconfig { + + private static void println(String line) { + System.Console.WriteLine(line); + } + + private static void output(Sigar sigar, String name) { + NetInterfaceConfig ifconfig = + sigar.NetInterfaceConfig(name); + ulong flags = ifconfig.Flags; + + //XXX cannot assume ethernet + String encap = (flags & Sigar.IFF_LOOPBACK) > 0 ? + "Local Loopback" : "Ethernet"; + + String hwaddr = ""; + if (!Sigar.NULL_HWADDR.Equals(ifconfig.Hwaddr)) { + hwaddr = " HWaddr " + ifconfig.Hwaddr; + } + + println(ifconfig.Name + "\t" + + "Link encap:" + encap + + hwaddr); + + String ptp = ""; + if ((flags & Sigar.IFF_POINTOPOINT) > 0) { + ptp = " P-t-P:" + ifconfig.Destination; + } + + String bcast = ""; + if ((flags & Sigar.IFF_BROADCAST) > 0) { + bcast = " Bcast:" + ifconfig.Broadcast; + } + + println("\t" + + "inet addr:" + ifconfig.Address + + ptp + //unlikely + bcast + + " Mask:" + ifconfig.Netmask); + + println("\t" + + ifconfig.FlagsString() + + " MTU:" + ifconfig.Mtu + + " Metric:" + ifconfig.Metric); + try { + NetInterfaceStat ifstat = + sigar.NetInterfaceStat(name); + + println("\t" + + "RX packets:" + ifstat.RxPackets + + " errors:" + ifstat.RxErrors + + " dropped:" + ifstat.RxDropped + + " overruns:" + ifstat.RxOverruns + + " frame:" + ifstat.RxFrame); + + println("\t" + + "TX packets:" + ifstat.TxPackets + + " errors:" + ifstat.TxErrors + + " dropped:" + ifstat.TxDropped + + " overruns:" + ifstat.TxOverruns + + " carrier:" + ifstat.TxCarrier); + println("\t" + "collisions:" + + ifstat.TxCollisions); + + ulong rxBytes = ifstat.RxBytes; + ulong txBytes = ifstat.TxBytes; + + println("\t" + + "RX bytes:" + rxBytes + + " (" + Sigar.FormatSize(rxBytes) + ")" + + " " + + "TX bytes:" + txBytes + + " (" + Sigar.FormatSize(txBytes) + ")"); + } catch (ApplicationException e) { + } + + println(""); + } + + public static void Main() { + Sigar sigar = new Sigar(); + + foreach (String name in sigar.NetInterfaceList()) { + output(sigar, name); + } + } +}