Page 1 of 1

_IP_ADAPTER_ADDRESSES ????

Posted: Sun Jan 01, 2017 5:10 pm
by callroot
How to translate to PUREBASIC

Code: Select all


typedef struct _IP_ADAPTER_ADDRESSES {
  union {
    ULONGLONG Alignment;
    struct {
      ULONG Length;
      DWORD IfIndex;
    };
  };
  struct _IP_ADAPTER_ADDRESSES  *Next;
  PCHAR                              AdapterName;
  PIP_ADAPTER_UNICAST_ADDRESS        FirstUnicastAddress;
  PIP_ADAPTER_ANYCAST_ADDRESS        FirstAnycastAddress;
  PIP_ADAPTER_MULTICAST_ADDRESS      FirstMulticastAddress;
  PIP_ADAPTER_DNS_SERVER_ADDRESS     FirstDnsServerAddress;
  PWCHAR                             DnsSuffix;
  PWCHAR                             Description;
  PWCHAR                             FriendlyName;
  BYTE                               PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
  DWORD                              PhysicalAddressLength;
  DWORD                              Flags;
  DWORD                              Mtu;
  DWORD                              IfType;
  IF_OPER_STATUS                     OperStatus;
  DWORD                              Ipv6IfIndex;
  DWORD                              ZoneIndices[16];
  PIP_ADAPTER_PREFIX                 FirstPrefix;
  ULONG64                            TransmitLinkSpeed;
  ULONG64                            ReceiveLinkSpeed;
  PIP_ADAPTER_WINS_SERVER_ADDRESS_LH FirstWinsServerAddress;
  PIP_ADAPTER_GATEWAY_ADDRESS_LH     FirstGatewayAddress;
  ULONG                              Ipv4Metric;
  ULONG                              Ipv6Metric;
  IF_LUID                            Luid;
  SOCKET_ADDRESS                     Dhcpv4Server;
  NET_IF_COMPARTMENT_ID              CompartmentId;
  NET_IF_NETWORK_GUID                NetworkGuid;
  NET_IF_CONNECTION_TYPE             ConnectionType;
  TUNNEL_TYPE                        TunnelType;
  SOCKET_ADDRESS                     Dhcpv6Server;
  BYTE                               Dhcpv6ClientDuid[MAX_DHCPV6_DUID_LENGTH];
  ULONG                              Dhcpv6ClientDuidLength;
  ULONG                              Dhcpv6Iaid;
  PIP_ADAPTER_DNS_SUFFIX             FirstDnsSuffix;
} IP_ADAPTER_ADDRESSES, *PIP_ADAPTER_ADDRESSES;



https://msdn.microsoft.com/en-us/librar ... s.85).aspx

Re: _IP_ADAPTER_ADDRESSES ????

Posted: Wed Jan 04, 2017 9:24 pm
by smacker
Something in this thread might help you out > http://www.purebasic.fr/english/viewtop ... astAddress - found via forum search, for example

Code: Select all

Structure IF_LUID  ;->Structure IF_LUID
  Reserved.q[24]
  NetLuidIndex.q[24]
  IfType.q[16]
EndStructure

Structure IP_ADAPTER_ADDRESSES_FLAGS
  DdnsEnabled.b[1]
  RegisterAdapterSuffix.b[1]
  Dhcpv4Enabled.b[1]
  ReceiveOnly.b[1]
  NoMulticast.b[1]
  Ipv6OtherStatefulConfig.b[1]
  NetbiosOverTcpipEnabled.b[1]
  Ipv4Enabled.b[1]
  Ipv6Enabled.b[1]
  Ipv6ManagedAddressConfigurationSupported.b[1]
EndStructure

Structure IP_ADAPTER_ADDRESSES_IF_INDEX
  Length.i
  IfIndex.i
EndStructure

;length of the IP_ADAPTER_ADDRESS struct = 376 for Windows 7 in Pure basic
Structure IP_ADAPTER_ADDRESSES  ;->Structure IP_ADAPTER_ADDRESSES
  StructureUnion
    Alignment.q
    sIndexLength.IP_ADAPTER_ADDRESSES_IF_INDEX
  EndStructureUnion
*Next.IP_ADAPTER_ADDRESSES
*AdapterName ; unicode
*FirstUnicastAddress.IP_ADAPTER_UNICAST_ADDRESS
*FirstAnycastAddress.IP_ADAPTER_ANYCAST_ADDRESS
*FirstMulticastAddress.IP_ADAPTER_MULTICAST_ADDRESS
*FirstDnsServerAddress.IP_ADAPTER_DNS_SERVER_ADDRESS
*DnsSuffix;.PWCHAR
*Description;.PWCHAR ; in unicode - WideCharToMultiByte
*FriendlyName;.PWCHAR ; in unicode
PhysicalAddress.b[#MAX_ADAPTER_ADDRESS_LENGTH]
PhysicalAddressLength.i
StructureUnion
  Flags.i
  *pFlags.IP_ADAPTER_ADDRESSES_FLAGS
EndStructureUnion
Mtu.i
IfType.i
OperStatus.i ;l
Ipv6IfIndex.i
ZoneIndices.i[16] ; The SCOPE_LEVEL enumeration
*FirstPrefix.IP_ADAPTER_PREFIX
TransmitLinkSpeed.q
ReceiveLinkSpeed.q
*FirstWinsServerAddress.IP_ADAPTER_WINS_SERVER_ADDRESS
*FirstGatewayAddress.IP_ADAPTER_GATEWAY_ADDRESS
Ipv4Metric.i
Ipv6Metric.i
StructureUnion ;-> IF_LUID union - is another name for NET_LUID
  Value.q
  *Info.IF_LUID
EndStructureUnion
Dhcpv4Server.SOCKET_ADDRESS
CompartmentId.i[#IF_COMPARTMENT_ID_PRIMARY]
NetworkGuid.b[16]
ConnectionType.i
TunnelType.i
Dhcpv6Server.SOCKET_ADDRESS
Dhcpv6ClientDuid.b[#MAX_DHCPV6_DUID_LENGTH]
Dhcpv6ClientDuidLength.i
Dhcpv6Iaid.i
*FirstDnsSuffix.IP_ADAPTER_DNS_SUFFIX
EndStructure