本帖最后由 VisualEleven 于 2011-02-15 10:16:18 编辑

解决方案 »

  1.   

    貌似不能谷歌 ipconfig 源码
    http://hi.baidu.com/pointers_art/blog/item/613f747f571c7b310cd7dab0.html
      

  2.   


    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;  NET_IF_NETWORK_GUID NetworkGuid;  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;
      

  3.   

    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; 
     NET_IF_NETWORK_GUID NetworkGuid;  
    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;
    看看这个结构体成员
      

  4.   

    to VisualEleven:
    这个结构体我也看了,但是不是很理解,不知道这个结构体中是否包含这些信息?
      

  5.   

    PIP_ADAPTER_UNICAST_ADDRESS对应的结构中,域OnLinkPrefixLength记录了子网掩码中1的个数,做个移位-1<<OnLinkPrefixLength就可
      

  6.   

    PIP_ADAPTER_UNICAST_ADDRESS对应的结构中,域OnLinkPrefixLength记录了子网掩码中1的个数,做个移位-1<<OnLinkPrefixLength就可