Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[erledigt] lokale IP ermitteln und im label wiedergeben
Micha84
myCSharp.de - Member



Dabei seit:
Beiträge: 10

Themenstarter:

[erledigt] lokale IP ermitteln und im label wiedergeben

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Micha84 am .
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3430
Herkunft: Trier -> München

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
MartinH
myCSharp.de - Member

Avatar #avatar-1761.gif


Dabei seit:
Beiträge: 183
Herkunft: Asperg

beantworten | zitieren | melden

probiers mal mit
addr[0].ToString()
private Nachricht | Beiträge des Benutzers
Micha84
myCSharp.de - Member



Dabei seit:
Beiträge: 10

Themenstarter:

beantworten | zitieren | melden

erstmal danke leute für die schnellen antworten :)
Zitat

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Micha84 am .
private Nachricht | Beiträge des Benutzers
bl4ckY
myCSharp.de - Member



Dabei seit:
Beiträge: 202

beantworten | zitieren | melden

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

Anonsten kannst du mal die restlichen Array Elemente anschauen.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von bl4ckY am .
private Nachricht | Beiträge des Benutzers
Micha84
myCSharp.de - Member



Dabei seit:
Beiträge: 10

Themenstarter:

beantworten | zitieren | melden

Zitat
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
private Nachricht | Beiträge des Benutzers
Stefan.Haegele
myCSharp.de - Member

Avatar #avatar-3068.jpg


Dabei seit:
Beiträge: 462
Herkunft: Untermeitingen

beantworten | zitieren | melden

Moderationshinweis von MarsStein (01.10.2010 - 15:01:34):

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
private Nachricht | Beiträge des Benutzers
Micha84
myCSharp.de - Member



Dabei seit:
Beiträge: 10

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
aequitas
myCSharp.de - Member

Avatar #avatar-3079.png


Dabei seit:
Beiträge: 517
Herkunft: Unterfranken

beantworten | zitieren | melden

Nimm eine regular Expression.
be the hammer, not the nail!
private Nachricht | Beiträge des Benutzers
Stefan.Haegele
myCSharp.de - Member

Avatar #avatar-3068.jpg


Dabei seit:
Beiträge: 462
Herkunft: Untermeitingen

beantworten | zitieren | melden


if (ip.AddressFamily != AddressFamily.InterNetworkV6)
{
     return (ip.ToString());
}
private Nachricht | Beiträge des Benutzers
Zicore
myCSharp.de - Member



Dabei seit:
Beiträge: 413

beantworten | zitieren | melden

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é
private Nachricht | Beiträge des Benutzers