Problem mit Dns.GetHostEntry()

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

      Problem mit Dns.GetHostEntry()

      Gute Nacht liebe Nachaktiven,

      ich sitz gerade an meinem Projekt für Ende der 13. Klasse was ich in 1 1/2 Wochen vorstellen muss.
      Ich bin auch fertig (ist ein TicTacToe Spiel in der Konsole, gegen Computer + übers Netzwerk mit TCP),
      allerdings funktioniert seit gerade die Dns.GetHostEntry() Funktion nicht mehr richtig und ich weiß nicht weiter.

      Ich übergebe eine vom Benutzer eingegeben IP an die Funktion (in diesem Fall meine private IP 192.168.2.107).

      Bis vor ca. einer Stunde hat auch alles funktioniert, aber jetzt bekomm ich als Adressen nur noch folgende:

      Aussehen sollte es aber so (hier hab ich IPAddress.Loopback an die Funktion übergeben):

      Der TcpListener läuft über die Adresse 0.0.0.0 damit jede Verbindung akzeptiert wird (egal ob die Adresse z.B. 10.1.25.40 ist oder 192.168.2.107)
      und der Port ist 6969.

      Hier noch ein zusammengeschnittener Screenshot, der einmal zeigt dass der Server auf eine Verbindung wartet
      und einmal wenn ein Client sich angeblich verbunden hat:


      Wie gesagt, bis vor einer Stunde ca. bekam ich bei der Funktion noch die Ergebnisse vom 2. Bild.
      Wäre nett wenn mir jemand der sich gut mit Netzwerken / Programmieren auskennt helfen kann, da ich echt am verzweifeln bin.
      Danke im Voraus.
      Bilder
      • bild.png

        19,96 kB, 683×345, 27 mal angesehen
      • bild2.png

        21,2 kB, 683×347, 29 mal angesehen
      • bild3.png

        6,51 kB, 564×125, 25 mal angesehen
      Damit ich mich per IP und Hostname verbinden kann:

      Hier der ein Ausschnitt vom Code:

      Quellcode

      1. IPHostEntry hostEntry = Dns.GetHostEntry(this.serverIP);
      2. this.client = new TcpClient(hostEntry.HostName, this.port);
      3. this.stream = this.client.GetStream();


      Der Benutzer kann halt entweder 192.168.2.107 oder in meinem Fall z.B. auch Fabian-PC.
      Da ich das ja in der Schule vorstellen muss (nur im LAN) soll man sich ruhig auch mit z.B. R420-16 verbinden können.

      Ich hab für das Projekt mich jetzt in die Netzwerkprogrammierung eingelesen, bin da also nicht so fit drin.
      Wie könnte man das denn noch machen?
      Hm, ich würde einfach gar nicht mit diesen komischen Hostnames arbeiten.
      Einfach über IP und fertig.

      BTW: Die Adressen im ersten Bild sind definitv falsch bzw. du hast die Funktion mit falschen Parametern aufgerufen.

      E:
      62.157.140.133 -> Telekom IP
      80.156.86.78 -> Telekom IP
      Hab jetzt eine (komische) Lösung gefunden:

      IPHostEntry hostEntry = Dns.GetHostByName(this.serverIP);
      this.client = new TcpClient(hostEntry.HostName, this.port);

      Keine Ahnung warum er da die richtige IP / Hostname findet, bei Dns.GetHostEntry() aber nicht.

      Visual Studio sagt sogar Dns.GetHostByName ist veraltet und man soll Dns.GetHostEntry verwenden.

      Naja, danke trotzdem für die Überlegung kuhkuh.

      PS:
      Hab jetzt auch herausgefunden dass die beiden IPs da Telekom IPs sind, aber keine Ahnung wieso er mir die anzeigt wenn ich nach 192.168.2.107 frage.
      Aber der Parameter ist / war 100% richtig, Beweis:

      Mit Dns.GetHostEntry():
      stagetwo.eu/Attachment/4439/?s…e90dc1d66e2d03909c93e1fb1

      Mit Dns.GetHostByName():
      stagetwo.eu/Attachment/4440/?s…e90dc1d66e2d03909c93e1fb1

      Keine Ahnung was da auf einmal los ist.
      Werde noch mal weiter probieren und auch am Montag in der Schule mal gucken ob es da noch geht.

      Trotzdem noch mal Danke :).
      Bilder
      • bild4.png

        41,43 kB, 793×439, 20 mal angesehen
      • bild5.png

        39,83 kB, 793×439, 17 mal angesehen
      Gar nicht gemerkt ^^.

      Würde mich nur mal interessieren warum mein PC oder der Router oder was auch immer jetzt das benutzt.

      Hab noch mal Dns.GetHostEntry() mit "Fabian-PC" als Parameter versucht, das funktioniert.
      Nur wenn man die IP eingibt nicht, komisch.

      Naja danke dir aufjedenfall... hab schon gedacht ich kann ~10 Std Arbeit noch mal von vorne anfangen.
      Werde mich noch mal melden falls es in der Schule nicht funktioniert (was ich aber nicht denke).

      Wünsche noch eine gute Nacht.
      Warum willst du überhaupt den Hostnamen auflösen, wenn du ne IP hast? Das brauchst du nicht mehr! Wenn ich direkt ne IP eingebe, kann der Verbindungsaufbau direkt losgehen, nur wenn ich wie in deinem Beispiel "Fabian-PC" also einen Hostnamen eingebe, musst du diesen auflösen und entsprechend DNS.GetHostEntry() aufrufen.