Laden...

[erledigt] lokale IP ermitteln und im label wiedergeben

Erstellt von Micha84 vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.663 Views
M
Micha84 Themenstarter:in
10 Beiträge seit 2009
vor 13 Jahren
[erledigt] lokale IP ermitteln und im label wiedergeben

Hallo Leute,

ich bin auf ein interessantes Code Snippet gestoßen, was ich gerne in Visual Studio 2008 verwenden möchte...

using System.Net;
...
String strHostName  = Dns.GetHostName();
IPHostEntry ipEntry = Dns.GetHostEntry(strHostName);
IPAddress[] addr    = ipEntry.AddressList;

http://en.csharp-online.net/IP_Address

Mein Problem ist nur, dass ich die IP in einem Label darstellen möchte auf der Oberflächer...

Allerdings wenn ich folgenden Code benutze:


// locip steht für local ip und bezeichnet das Label
locip.Text = addr.ToString();

erschein auf der Oberfläche im Label nur:

"System.Net.IP.Address[]"

könnte mir bitte jemand weiterhelfen?

Dankeschön und mit freundlichen Grüßen

Michael

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

du rufst ToString auf einem Array. Dementsprechend bekommst Du das auch so angezeigt.
Ruf doch mal ToString auf den ersten Element.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

185 Beiträge seit 2005
vor 13 Jahren

probiers mal mit
addr[0].ToString()

M
Micha84 Themenstarter:in
10 Beiträge seit 2009
vor 13 Jahren

erstmal danke leute für die schnellen antworten 😃

probiers mal mit
addr[0].ToString()

es funktioniert, aber jetzt habe ich ein erneutes problem:

ich wollte eigentlich die IP v4 adresse und nicht die IPv6 adresse...
da muss es doch auch irgendeinen trick geben oder verfahren geben...

bin noch relativ neu in c#, von daher vergebe man mir bitte mein noch nicht so fundiertes grundwissen, ich bin es ständig am erweitern 😃

gruß

michael

B
193 Beiträge seit 2009
vor 13 Jahren

Wenn du nun mal eine IPv6 hast dann zeigt er dir diese auch an.

Anonsten kannst du mal die restlichen Array Elemente anschauen.

M
Micha84 Themenstarter:in
10 Beiträge seit 2009
vor 13 Jahren

Wenn du nun mal eine IPv6 hast dann zeigt er dir diese auch an.

Anonsten kannst du mal die restlichen Array Elemente anschauen.

hi, danke für deinen Tipp, das wars 🙂
Wieso komme ich selbst manchmal nicht auf so einfache Sachen, ich mach' besser mal ne pause 😉

locip.Text = "IP: " + addr[3].ToString();

Danke euch allen, es funktioniert!

Gruß

Michael

463 Beiträge seit 2009
vor 13 Jahren
Hinweis von MarsStein vor 13 Jahren

Bitte keine längeren Beiträge komplett zitieren - zumal wenn der zitierte Beitrag unmittelbar drüber steht. Danke.

-- Zitat entfernt --

Das wird so nur auf deinem Rechner gehen, keiner kann dir garantieren, dass die Reigenfolge immer gleich ist. Du musst prüfen ob die IP V4 oder V6 ist.

Stefan

M
Micha84 Themenstarter:in
10 Beiträge seit 2009
vor 13 Jahren

hmm, ich wollte es nachher auf anderen rechnern testen...

gibts da einen trick mit dem ich auf ipv4 testen kann?

ich stelle mir das mit einer if anweisung, bzw. mehreren vor...

gruß

michael

458 Beiträge seit 2007
vor 13 Jahren

Nimm eine regular Expression.

be the hammer, not the nail!

463 Beiträge seit 2009
vor 13 Jahren

if (ip.AddressFamily != AddressFamily.InterNetworkV6)
{
     return (ip.ToString());
}

Z
403 Beiträge seit 2007
vor 13 Jahren

Hallo Micha84,

wenn du die IPv4 hast, ist immernoch nicht sichergestellt das es die richtige ist.
Viele haben 5 oder mehr netzwerkgeräte, genau die IP zu finden mit der man z.B. ins Internet geht, ist da garnicht mal so einfach.

André