TCPListener - lokale IP eingehender Verbindungen

  • VB.NET

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von Pvt.BeaverSau.

    TCPListener - lokale IP eingehender Verbindungen

    Hallo :)
    Ich beschäftige mich zurzeit mit den Klassen TCP-Listener sowie TCP-Client und versuche eine Verbindung zu einem anderen Rechner herzustellen. Das klappt auch alles soweit ganz gut. Ich höre mit dem TCP-Listener einen bestimmten Port ab und wenn eine Verbindung eingeht, übergebe ich diese an den TCP-Clienten. Jetzt würde ich gerne die lokale, fest eingestellte IP der eingehenden Verbindung überprüfen, so dass sich nur bestimmte Rechner mit mir verbinden können. Ist es möglich die lokale IP irgendwo auszulesen?

    Mit freundlichen Grüßen,
    Marcus

    TCPListener - Lokale IP eingehender Verbindungen ermitteln

    Hier sollte funktionieren.

    VB.NET-Quellcode

    1. Dim ipend As Net.IPEndPoint = DirectCast(client.Client.RemoteEndPoint, Net.IPEndPoint)
    2. If Not ipend Is Nothing Then
    3. PublicIP = ipend.Address.ToString & ":" & ipend.Port.ToString
    4. End If


    Hat hier schon wer beantwortet unter nem anderem Thema. Hier:
    [VB.NET] TCP/IP Chat IP´s verwalten?
    Kein Thema
    Bin grad selber dabei eine Verbindung aufzubauen, aber nicht mal das geht bei mir.
    Also auf meinem Rechner schon, aber wenn ich das im Lan-Netzwerk machen will und
    bei meinem Bruder den Client und bei mir der Server schon läuft, kommt immer ein
    Verbindungsproblem.
    Würdest du vllt deinen Code posten wär dir echt sehr dankbar darüber, weil ich jetzt
    schon zwei Tage Googel und noch zu keinem Ergebniss gekommen bin.
    Also wärs super, wenn du deine funktionierende Lösung posten könntest.

    Mfg Pvt.BeaverSau
    Also ich hab die Netzwerkinterne, also die nur bis zum Router geht ausprobiert und mit der ich im Internet bin.
    Aber beide funktionieren nicht. Da ich ja im Netzwerk bin müsste die doch eigentlich die richtige sein.
    Also die Netwerkinterne mein ich. Die Firewall fragt mich ob ich die Verbindung zu lassen möchte und da klick
    ich dann halt ja

    Habs grad mal anders herum ausprobiert, also bei meinem Bruder den Server laufen gelassen und bei mir den Client.
    Weiß wer woran das liegen könnte? Vllt irgendwelche falschen einstellungen?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Pvt.BeaverSau“ () aus folgendem Grund: Anders herum geht es

    So jetzt gehts auch das ich deer server bin und mein bruder der Client.
    Lag an der Firewal, muss anscheinend auf Weiterhin Blocken geklickt haben.
    Da die Firewall nur einmal nachfragt konnt ich das nicht änder und da ich zur
    Probe das Programm auf den Desktop kopiert habe und gestartet habe, hat
    die Firewall nochmal nachgefragt und ich hab Nicht mehr blocken angeklickt
    und nun klappts.
    Vielen dank für die Hilfe das hat mich auf den richtigen Weg gebracht :D
    Aber noch ne andere Frage, wenn ich das jetzt mit nem Freund ausprobieren
    will muss ich ja die Internet IP nehmen da ich und er aber hinter nem Router
    sitzen wird das wohl probleme machen weil der Router nicht weiß an welchen
    PC er die Daten schicken soll. Ich hab jetzt schon irgendwas von dyndns
    gelesen und von port forwarding oder so, kann mir wer sagen was da das
    richtige is und wie man das realisieren könnte?

    MFG Pvt.BeaverSau
    beides ist das richtige...dyndns ist nur dafür da, dass du diese Adresse anstelle deiner InternetIP angeben musst, somit reicht eine einmalige Angabe, da sich die Adresse nicht ändert...
    das Portforwarding musst du selbst im Router einstellen, was je nach Router Hersteller unterschiedlich ist, steht evtl. in der jeweiligen Anleitung, oder ansonsten im Internet(bei allen Routern heutzutage - meines wissens - macht man dies jedoch im Browser indem man dort die IP des Routers eingibt, nach jeweiliger Benutzer und Passworteingabe solltest du deinen Router einstellen können...)
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Also kann ich das port forwarding schonmal nicht verwenden also ins Programm einbauen.
    Aber kann mann das dyndns so verwennden das ich das in mein Programm schreib und der
    das automatisch macht? Also ohne das der Benutzer noch irgendwas einstellen muss.
    Sorry steigt da nämlich noch nicht ganz durch.
    Für Erklärungen oder Links wäre ich sehr dankbar.

    MFG Pvt.BeaverSau
    nein, die musst du dir holen dyndns.com/ da sollte alles weitere beschrieben sein...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „jvbsl“ ()

    das muss nicht der Endbenutzer machen, dass muss einmal eine person machen, diese die den Server verwaltet, ich schätze das bist somit du...
    Alle Clienten verbinden dann nachher auf deinen Computer und dein Computer empfängt auch die Nachrichten, shcickt diese aber an die entsprechenden Personen weiter...so wie hier: [VB.NET] Multiserver (TCP)
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Ja aber, wenn jetzt mein Freund auch hinter nem Router hockt,
    wie soll dann mein programm ihn erreichen? Weil wenn ich das
    an seinem Router schick kommts ja net an seinem PC an.
    Was ändert dan dyndns daran? Sorry ich glaub ich steh grad
    mächtig aufm schlauch. Wenn du nen Link kennst, wo das erklärt
    is kannst mir ja mal schreiben oder du versuchstes weiter mir
    das bei zubringen, wär natürlich sehr net :rolleyes:

    MFG Pvt.BeaverSau
    Also, das Portforwarding stellst du auf deinem PC ein, über die InternetIP könnt ihr euch miteinander verbinden und somit auch miteinander schreiben, sofern du auf deinem Computer das Serverprogramm laufen hast und er auf seinem ein Clientprogramm...
    Die InternetIP ändert sich jedoch immerwieder durch den Provider, daran kannst du nichts ändern, wenn du dann auf deinem PC jedoch dyndns verwendest, genügt es diese Adresse die sich nicht verändert anzugeben, die Adresse leitet dann auf deine aktuelle IP weiter(sofern dein Computer angeschaltet ist und das Programm läuft...)...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Ja ok ich denk das hab ich jetzt verstanden, bringt mich aber nicht weiter,
    weil das dyndns ja nur auf meinen PC weiterleitet. Das könnte mann dann
    aber auch z.B uber einen Ftp-Server realisieren oder? Also das da in einer
    Datei immer die aktuelle IP-Adresse vorhanden ist. Aber da mein Freund
    wie gesagt auch nen Router hat kann ich ihn ja auch nicht erreichen.
    Also brauche ich port farwarding, Richtig? Muss ich das am PC einstellen
    oder kann das mein Programm nocht übernehemen?

    MFG Pvt.BeaverSau
    alle deine Freunde bekommen Client programme und müssen somit nichts mit Portforwarding machen...
    nur du verwendest das Serverprogramm und musst einen Port freigeben, somit können alle deine Freunde zu dir verbinden ohne etwas freizugeben, Portforwarding kann man nicht ins Programm einbauen...
    Über einen FTP Server wäre möglich, jedoch total unsicher, also verwendest du dyndns, das muss auch keiner deriner Freunde verwenden...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Super danke jetzt hab ich das verstanden. :rolleyes:
    Is ja gar nicht so schwer :D
    Also erstmal ein ganz, ganz großes Dankeschön für deine Geduld :thumbsup:
    Setzt mich dann Morgen mal dran und schau das das läuft, bin jetzt
    aber zuversichtlich.^^

    MFG Pvt.BeaverSau