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
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
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
Wenn du nun mal eine IPv6 hast dann zeigt er dir diese auch an.
Anonsten kannst du mal die restlichen Array Elemente anschauen.
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
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
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
Nimm eine regular Expression.
be the hammer, not the nail!
if (ip.AddressFamily != AddressFamily.InterNetworkV6)
{
return (ip.ToString());
}
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é