2 // System.Net.NetworkInformation.NetworkInterface
5 // Eric Butler (eric@extremeboredom.net)
7 // Copyright (c) 2008 Eric Butler
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 using System
.Runtime
.InteropServices
;
32 namespace System
.Net
.NetworkInformation
{
33 [StructLayout(LayoutKind
.Explicit
)]
37 public IntPtr ifu_broadaddr
;
40 public IntPtr ifu_dstaddr
;
43 [StructLayout(LayoutKind
.Sequential
)]
46 public IntPtr ifa_next
;
47 public string ifa_name
;
48 public uint ifa_flags
;
49 public IntPtr ifa_addr
;
50 public IntPtr ifa_netmask
;
51 public ifa_ifu ifa_ifu
;
52 public IntPtr ifa_data
;
55 [StructLayout(LayoutKind
.Sequential
)]
58 public ushort sin_family
;
59 public ushort sin_port
;
63 [StructLayout(LayoutKind
.Sequential
)]
66 public ushort sin6_family
; /* AF_INET6 */
67 public ushort sin6_port
; /* Transport layer port # */
68 public uint sin6_flowinfo
; /* IPv6 flow information */
69 public in6_addr sin6_addr
; /* IPv6 address */
70 public uint sin6_scope_id
; /* scope id (new in RFC2553) */
73 [StructLayout(LayoutKind
.Sequential
)]
76 [MarshalAs (UnmanagedType
.ByValArray
, SizeConst
=16)]
77 public byte[] u6_addr8
;
80 [StructLayout(LayoutKind
.Sequential
)]
83 public ushort sll_family
;
84 public ushort sll_protocol
;
85 public int sll_ifindex
;
86 public ushort sll_hatype
;
87 public byte sll_pkttype
;
88 public byte sll_halen
;
90 [MarshalAs (UnmanagedType
.ByValArray
, SizeConst
=8)]
91 public byte[] sll_addr
;
94 enum LinuxArpHardware
{