コード例 #1
0
 internal NetworkInterface(uv_interface_address_t *iface)
 {
     Name     = Marshal.PtrToStringAnsi(iface->name);
     Internal = iface->is_internal != 0;
     byte[] phys_addr = new byte[6];
     for (int i = 0; i < phys_addr.Length; i++)
     {
         phys_addr[i] = iface->phys_addr[i];
     }
     PhysicalAddress = new PhysicalAddress(phys_addr);
     Address         = UV.GetIPEndPoint(new IntPtr(&iface->sockaddr)).Address;
     Netmask         = UV.GetIPEndPoint(new IntPtr(&iface->netmask)).Address;
 }
コード例 #2
0
        internal static NetworkInterface[] GetInterfaces()
        {
            IntPtr interfaces;
            int    count;
            var    error = uv_interface_addresses(out interfaces, out count);

            NetworkInterface[] ret = new NetworkInterface[count];

            for (int i = 0; i < count; i++)
            {
                uv_interface_address_t *iface = (uv_interface_address_t *)(IntPtr)((((long)interfaces) + (long)(i * sizeof(uv_interface_address_t))));
                ret[i] = new NetworkInterface(iface);
            }

            uv_free_interface_addresses(interfaces, count);
            Ensure.Success(error);
            return(ret);
        }
コード例 #3
0
        internal static NetworkInterface[] GetInterfaces()
        {
            IntPtr interfaces;
            int    count;
            int    r = uv_interface_addresses(out interfaces, out count);

            Ensure.Success(r);

            NetworkInterface[] ret = new NetworkInterface[count];

            for (int i = 0; i < count; i++)
            {
                uv_interface_address_t *iface = (uv_interface_address_t *)(interfaces.ToInt64() + i * sizeof(uv_interface_address_t));
                ret[i] = new NetworkInterface(iface);
            }

            uv_free_interface_addresses(interfaces, count);
            return(ret);
        }
コード例 #4
0
 internal NetworkInterface(uv_interface_address_t *iface)
 {
     Name     = Marshal.PtrToStringAnsi(iface->name);
     Internal = iface->is_internal != 0;
     Address  = UV.GetIPEndPoint((IntPtr)(((long)new IntPtr(iface)) + (long)(sizeof(IntPtr) + sizeof(int)))).Address;
 }