AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Namen der Netzwerk-Verbindungen auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Namen der Netzwerk-Verbindungen auslesen

Ein Thema von Helmi · begonnen am 1. Sep 2012 · letzter Beitrag vom 10. Okt 2016
Antwort Antwort
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
 
Delphi XE2 Professional
 
#1

AW: Namen der Netzwerk-Verbindungen auslesen

  Alt 27. Okt 2012, 18:52
Tipp:
Und pssst, Dein FreeMem gibt nichts frei, da dort der Pointer nil ist (weil dieser ja seit dem GetMem verändert "Next" wurde).
(siehe mein Edit ... hatte das auch erst vergessen , aber keine Sorge ... der Code vom CodeOrakel, vergißt dagegen sogar komplett der Freigeben)
stimmt - der ist nil!
Aber dann dürft ja FreeMem nichts zu tun haben und falls ja, dann wird Speicher freigegeben.
Ich seh jetzt nicht so das Problem das drinzulassen, oder?


Da AdapterName ein ANSI-String ist, besser nach AnsiString und nicht String "casten" (String(pAdapterList.AdapterName) ) ... dann gibt's eventuell auch weniger Compilerhinweise, bezüglich ANSI<>Unicode.
Also mein Delphi ist da ganz ruhig (ok - hab jetzt die o. g. Units mit drin)

Und IpAddressList = evetuell auch mehrere IPs und nicht nur Eine.
Aber es wird doch nur eine angezeigt bzw. rückgemeldet von GetAdaptersInfo?


So - jetzt muss ich Himitsu genügend Zeit zum Antworten und Editieren geben.... - ist halt nimmer der Jüngste
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#2

AW: Namen der Netzwerk-Verbindungen auslesen

  Alt 27. Okt 2012, 19:15
Mit GetAdaptersInfo funktioniert es nur mit der Registry. Wenn Du nur System gleich oder größer Windows XP unterstützen möchtest, dann nimm MSDN-Library durchsuchenGetAdaptersAddresses.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Namen der Netzwerk-Verbindungen auslesen

  Alt 27. Okt 2012, 20:02
Mit GetAdaptersInfo funktioniert es nur mit der Registry. Wenn Du nur System gleich oder größer Windows XP unterstützen möchtest, dann nimm MSDN-Library durchsuchenGetAdaptersAddresses.
Bin ich jetzt blind oder steht in GetAdaptersInfo keine IP-Adresse?
Den "FriendlyName" hab ich gefunden - genau das was ich suche

Ich sehe GetAdaptersAddresses als Ergänzung zu GetAdaptersInfo an
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Namen der Netzwerk-Verbindungen auslesen

  Alt 10. Okt 2016, 13:49
Hat schon mal jemand diesen Code mit ReportMemoryLeaksOnShutdown:= True; compiliert/ausgeführt?

Ich frage bloß deshalb, weil ich damit einen belegten Speicherblock angezeigt bekomme. Ich habe hier (vorletzter Post) ähnlichen Code gefunden, in dem vor pAdapterList := pAdapterList.Next; der aktuelle Eintrag auf eine Temp-Variable übertragen und diese dann jedes Mal freigegeben wird. Damit bekomme ich kein Speicherleck mehr.

Ich liebe aber kurzen Code. Daher meine Frage. Sollte es also wirklich kürzer gehen, würde ich mich über eine Antwort freuen.
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.339 Beiträge
 
Delphi 12 Athens
 
#5

AW: Namen der Netzwerk-Verbindungen auslesen

  Alt 10. Okt 2016, 14:26
Für die Schleife muß man eine eigene Variable verwenden, denn durch pAdapterList:=pAdapterList.Next wird ja der Zeiger verschoben, und FreeMem(pAdapterList) kann dann nicht mehr das freigeben, was durch AllocMem reserviert wurde.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Namen der Netzwerk-Verbindungen auslesen

  Alt 10. Okt 2016, 15:00
Ich habs nur überflogen, aber meiner Meinung nach muß in der Schleife while Assigned(pAdapterList) do PIP_ADAPTER_INFO genutzt werden.
Und die Freigabe für pAdapterlist ist in Ordung.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#7

AW: Namen der Netzwerk-Verbindungen auslesen

  Alt 10. Okt 2016, 15:12
Für die Schleife muß man eine eigene Variable verwenden, ...
Also passt das mit der temp-Variable. Danke für die ultraschnelle Antwort
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.339 Beiträge
 
Delphi 12 Athens
 
#8

AW: Namen der Netzwerk-Verbindungen auslesen

  Alt 27. Okt 2012, 19:30
Wenn man FreeMem nil gibt, dann macht es nichts, da es ja denkt es gäbe nichts freizugeben.

Man muß ihm schon einen Pointer geben, welcher auch (noch) auf den freizugebenden Speicherblock zeigt.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz