Advertisement
Guest User

Untitled

a guest
Apr 19th, 2010
4,908
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.11 KB | None | 0 0
  1. using System;
  2. using System.Diagnostics;
  3. using System.Runtime.InteropServices;
  4.  
  5. namespace DellRoutes
  6. {
  7.     class Program
  8.     {
  9.         [ComVisible(false), StructLayout(LayoutKind.Sequential)]
  10.         internal struct IPForwardTable
  11.         {
  12.             public uint Size;
  13.  
  14.             [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.Struct, SizeParamIndex = 0)]
  15.             public IPFORWARDROW[] Table;
  16.         };
  17.  
  18.         [ComVisible(false), StructLayout(LayoutKind.Sequential)]
  19.         internal struct IPFORWARDROW
  20.         {
  21.             internal int /*DWORD*/ dwForwardDest;
  22.             internal int /*DWORD*/ dwForwardMask;
  23.             internal int /*DWORD*/ dwForwardPolicy;
  24.             internal int /*DWORD*/ dwForwardNextHop;
  25.             internal int /*DWORD*/ dwForwardIfIndex;
  26.             internal int /*DWORD*/ dwForwardType;
  27.             internal int /*DWORD*/ dwForwardProto;
  28.             internal int /*DWORD*/ dwForwardAge;
  29.             internal int /*DWORD*/ dwForwardNextHopAS;
  30.             internal int /*DWORD*/ dwForwardMetric1;
  31.             internal int /*DWORD*/ dwForwardMetric2;
  32.             internal int /*DWORD*/ dwForwardMetric3;
  33.             internal int /*DWORD*/ dwForwardMetric4;
  34.             internal int /*DWORD*/ dwForwardMetric5;
  35.         };
  36.  
  37.         [DllImport("iphlpapi", CharSet = CharSet.Auto)]
  38.         private extern static int GetIpForwardTable(IntPtr /*PMIB_IPFORWARDTABLE*/ pIpForwardTable, ref int /*PULONG*/ pdwSize, bool bOrder);
  39.  
  40.         [DllImport("iphlpapi", CharSet = CharSet.Auto)]
  41.         private extern static int CreateIpForwardEntry(IntPtr /*PMIB_IPFORWARDROW*/ pRoute);
  42.  
  43.         static void Main(string[] args)
  44.         {
  45.             var fwdTable = IntPtr.Zero;
  46.             int size = 0;
  47.             var result = GetIpForwardTable(fwdTable, ref size, true);
  48.             fwdTable = Marshal.AllocHGlobal(size);
  49.            
  50.             result = GetIpForwardTable(fwdTable, ref size, true);
  51.             var str = (IPForwardTable) Marshal.PtrToStructure(fwdTable, typeof(IPForwardTable));
  52.      
  53.             Marshal.FreeHGlobal(fwdTable);
  54.         }
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement