Netzwerkadapter auslesen... falsche werte



  • Hi,

    versuch grad meinen Netzwerk-Adapter auszulesen; was auch ganz gut funktioniert, allerdings werden die Subnetmask und der Gateway nicht richtig dargestellt: ich verwende ein Unicode-Projekt unter Visual Studio.

    Für den Gateway bekomm ich z.B. "m_gateway = "㤱⸲㘱⸸㈲⸴〱0⸰⸰⸰0"" angezeigt.

    CString m_subnet; 
    CString m_gateway; 
    
    m_subnet.Format(_T("%s"),pAdapter->IpAddressList.IpMask.String);
    m_gateway.Format(_T("%s"),pAdapter->GatewayList.IpAddress.String);
    

    Gruß
    Bernd



  • ok, hab den Fehler gefunden, man muss den .String weglassen und gleich als String abspeichern 🙄

    Weiß jmd von euch, wie man die NEtzwerkeinstellungen wie IP etc. ändern kann aus Visual Studio MFC?



  • Schau Dich mal bei den IP Helper Funktions um:

    http://msdn.microsoft.com/en-us/library/aa366071(v=VS.85).aspx



  • Roger Wilco schrieb:

    Schau Dich mal bei den IP Helper Funktions um:

    http://msdn.microsoft.com/en-us/library/aa366071(v=VS.85).aspx

    danke für die Info - Ip etc. kann ich ändern. Weißt du auch wie man den Netzwerk Adapter Name (Local Network Connection, LAN Verbindung etc.) herausbekommt (geht das nur über die Registry?) - z.B. mit einer MFC, oder c++ Lib?

    PIP_ADAPTER_INFO pAdapter = NULL; 
    //load network interface adapter 
    CString name; 
    name = pAdapter->AdapterName;
    

    darüber bekomm ich nur eine Nummer,aber den nicht den Stringnamen... möchte mit diesem Namen den Netwerk-Adapter via netsh konfigurieren



  • Ich weiß es nicht, aber wenn ich bei den IP Helper Functions nachschaue gibt es:

    GetAdaptersAddresses

    The GetAdaptersAddresses function can retrieve information for IPv4 and IPv6 addresses. Addresses are returned as a linked list of IP_ADAPTER_ADDRESSES structures in the buffer pointed to by the AdapterAddresses parameter.

    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;
    

    Nicht so faul sein...! 😉

    Edit: Hier kannst Du auch noch nachsehen:
    GetInterfaceInfo und GetPerAdapterInfo.



  • Roger Wilco schrieb:

    Ich weiß es nicht, aber wenn ich bei den IP Helper Functions nachschaue gibt es:

    GetAdaptersAddresses

    danke für den Hint - hier wird die Information übergeben :p


Anmelden zum Antworten