[Win]NetworkAdapterInterface

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Re: [Win]NetworkAdapterInterface

Beitrag von X360 Andy »

Funktioniert auch unter WIN7 x86

Nur kann der Typ nicht immer festgestellt werden.
Number 1
--------
Type:
Name: {428DCE5F-5DB5-46E2-8213-3D07821C9859}
Desc: Microsoft Virtual WiFi Miniport Adapter
MAC : 06-22-68-AC-36-54
IPs : 1
IP#1: 0.0.0.0
Subnet#1: 0.0.0.0
Gateway: 0.0.0.0
uses DHCP!
DHCP Server:
DHCP obtained: 01.01.1970 00:00:00
DHCP expires: 01.01.1970 00:00:00

Number 2
--------
Type: Ethernet
Name: {108DF1F9-4BBF-4903-8DD8-0B4EE9350A32}
Desc: TAP-Win32 Adapter V9
MAC : 00-FF-10-8D-F1-F9
IPs : 1
IP#1: 0.0.0.0
Subnet#1: 0.0.0.0
Gateway: 0.0.0.0
uses DHCP!
DHCP Server:
DHCP obtained: 01.01.1970 00:00:00
DHCP expires: 01.01.1970 00:00:00

Number 3
--------
Type: Ethernet
Name: {6240B58F-086D-4A70-8A58-2C0FF1099862}
Desc: Bluetooth Device (Personal Area Network)
MAC : 00-21-86-64-24-79
IPs : 1
IP#1: 0.0.0.0
Subnet#1: 0.0.0.0
Gateway: 0.0.0.0
uses DHCP!
DHCP Server:
DHCP obtained: 01.01.1970 00:00:00
DHCP expires: 01.01.1970 00:00:00

Number 4
--------
Type:
Name: {64F5BC3A-F12B-45D3-BEC4-D155B685C6B2}
Desc: Atheros AR5007 802.11b/g WiFi Adapter
MAC : 00-22-68-AC-36-54
IPs : 1
IP#1: 192.168.2.103
Subnet#1: 255.255.255.0
Gateway: 192.168.2.1
uses DHCP!
DHCP Server: 192.168.2.1
DHCP obtained: 21.10.2009 12:20:34
DHCP expires: 21.10.2009 12:20:33

Number 5
--------
Type: Ethernet
Name: {0585CF48-353A-4339-99CD-A153B258AB02}
Desc: Realtek PCIe GBE Family Controller
MAC : 00-1E-EC-83-FE-CA
IPs : 1
IP#1: 0.0.0.0
Subnet#1: 0.0.0.0
Gateway: 0.0.0.0
uses DHCP!
DHCP Server:
DHCP obtained: 01.01.1970 00:00:00
DHCP expires: 01.01.1970 00:00:00
Benutzeravatar
HeX0R
Beiträge: 2960
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: [Win]NetworkAdapterInterface

Beitrag von HeX0R »

Hmm... welcher Typ wäre denn das dann?
Eigentlich sind keine anderen Typen definiert.

Füge mal das hier zu der TypeToString()-Prozedur dazu:

Code: Alles auswählen

Default : Result = Str(Type)
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Re: [Win]NetworkAdapterInterface

Beitrag von X360 Andy »

Bei beiden ohne Type bekomme ich die Zahl 71 zurück als Type
Benutzeravatar
HeX0R
Beiträge: 2960
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: [Win]NetworkAdapterInterface

Beitrag von HeX0R »

Ah ja, das wäre dann IF_TYPE_IEEE80211, was aber laut MSDN nur bei GetAdaptersAddresses() als Rückgabewert vorkommen sollte.

Sind sich wohl selbst nicht so im klaren ;)

[Edit]
O.k., ich hab die Typen von IP_ADAPTER_ADDRESSES noch der vollständigkeithalber hinzugefügt.
(Da die Klartextumwandlung im Beispielcode ist, wurde der auch angepasst)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: [Win]NetworkAdapterInterface

Beitrag von ts-soft »

Unter x64 sind sämtliche IPs leer, sieht man auch in der Bestätigung von Fluid Byte hier:
http://www.purebasic.fr/german/viewtopi ... 15#p258815

It doesn't würgs nau

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
HeX0R
Beiträge: 2960
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: [Win]NetworkAdapterInterface

Beitrag von HeX0R »

Hoppla,

da hab ich dich glatt übersehen.
Werde mir das bei Gelegenheit mal anschauen, dazu muss ich aber erst an meinen Rechner ran.
Das kann noch zwei Wochen dauern.
Benutzeravatar
HeX0R
Beiträge: 2960
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: [Win]NetworkAdapterInterface

Beitrag von HeX0R »

Also irgendwie...

Das war jetzt schwieriger als erwartet und verstehen kann ich es erst nicht.
Ein DWORD ist doch eigentlich eindeutig 4 Bytes lang, egal ob x64 oder x86?
Trotzdem musste ich das Context in IP_ADDR_STRING (angeblich ein DWORD) von LONG in INTEGER ändern.

Dann habe ich mich noch durch Trial and Error zu folgenden zwei universal Strukturen (also x64 und x86) gehangelt
und die Ergebnisse scheinen auch korrekt.

Seltsam das...
Vielleicht steckt der Fehler auch irgendwo anders, kann nicht mal ein API-Guru sich das mal genauer anschauen?

Die beiden Strukturen IP_ADDR_STRING und IP_ADAPTER_INFO mit diesen hier ersetzen (hab ich im Original schon erledigt)

Code: Alles auswählen

Structure IP_ADDR_STRING
	*Next
	IpAddress.b[16]
	IpMask.b[16]
	Context.i
EndStructure

Structure IP_ADAPTER_INFO
	*Next
	ComboIndex.l
	AdapterName.b[#MAX_ADAPTER_NAME_LENGTH + 4]
	Description.b[#MAX_ADAPTER_DESCRIPTION_LENGTH + 4]
	AddressLength.l
	Address.b[#MAX_ADAPTER_ADDRESS_LENGTH]
	Index.l
	Type.l
	DhcpEnabled.i
	*CurrentIpAddress.IP_ADDR_STRING
	IpAddressList.IP_ADDR_STRING
	GatewayList.IP_ADDR_STRING
	DhcpServer.IP_ADDR_STRING
	HaveWins.i
	PrimaryWinsServer.IP_ADDR_STRING
	SecondaryWinsServer.IP_ADDR_STRING
	LeaseObtained.i
	LeaseExpires.i
EndStructure
Antworten