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:
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:
danke für den Hint - hier wird die Information übergeben :p