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
IP aus einer bestehenden Verbindung
Dexter
myCSharp.de - Member



Dabei seit:
Beiträge: 482
Herkunft: Österreich, Vlbg

Themenstarter:

IP aus einer bestehenden Verbindung

beantworten | zitieren | melden

Gibt es ne möglichkeit die ip des clienten herauszufinden, wenn der eine TCP-Connection mit dem Server hat, also die IP aus dem TcpClient herausfischen. Geht das, oder muss der Client seine IP ermitteln und dann dem Server "unterbreiten".

Dexter

//edit UPS bitte verschieben, falsches Forum
Programmierer sind Maschinen die Koffein in Quellcode umsetzen.
private Nachricht | Beiträge des Benutzers
Big Al
myCSharp.de - Member



Dabei seit:
Beiträge: 348
Herkunft: Mannheim

beantworten | zitieren | melden

Hi Dexter,
das geht, glaube ich, mit TcpClient.Client.RemoteEntryPoint.
Big Al
Da man Spatzen nicht mit Kanonen jagt, sollte man auch nicht mit Computern auf Spatzenhirne losgehen.
private Nachricht | Beiträge des Benutzers
Peter Bucher
myCSharp.de - Experte

Avatar #jVxXe7MDBPAimxdX3em3.jpg


Dabei seit:
Beiträge: 6141
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Zitat
Original von Big Al
Der grüne Punkt geht auf die Wiese, der gelbe Punkt geht in die Sonne,
der blaue Punkt geht ins Meer, wohin geht der rote Punkt?
Auf die Nerven!
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

- https://peterbucher.ch/ - Meine persönliche Seite
- https://fpvspots.net/ - Spots für FPV Dronenflüge
private Nachricht | Beiträge des Benutzers
Big Al
myCSharp.de - Member



Dabei seit:
Beiträge: 348
Herkunft: Mannheim

beantworten | zitieren | melden

Da hasste recht
Da man Spatzen nicht mit Kanonen jagt, sollte man auch nicht mit Computern auf Spatzenhirne losgehen.
private Nachricht | Beiträge des Benutzers
Dexter
myCSharp.de - Member



Dabei seit:
Beiträge: 482
Herkunft: Österreich, Vlbg

Themenstarter:

beantworten | zitieren | melden

Kann es sein, dass es TcpClient.Client nur im Framework 2.0 gibt? Im SharpDevelope 1.1 gibts das nämlich nicht.

Dexter
Programmierer sind Maschinen die Koffein in Quellcode umsetzen.
private Nachricht | Beiträge des Benutzers
Big Al
myCSharp.de - Member



Dabei seit:
Beiträge: 348
Herkunft: Mannheim

beantworten | zitieren | melden

MMMhhhh, vielleicht, 1.1 kenn ich nich so gut,
da ich C# mit 1.1 angefangen habe und ca. 4 Monate später 2.0 rauskam.
Da hab ich gleich "gewechselt".
Viele Grüße,
Big Al
Da man Spatzen nicht mit Kanonen jagt, sollte man auch nicht mit Computern auf Spatzenhirne losgehen.
private Nachricht | Beiträge des Benutzers
Franknstein
myCSharp.de - Member



Dabei seit:
Beiträge: 531

beantworten | zitieren | melden

Zitat
Kann es sein, dass es TcpClient.Client nur im Framework 2.0 gibt? Im SharpDevelope 1.1 gibts das nämlich nicht.
Stimmt nicht ganz, diese Eigenschaft ist nämlich nur nicht öffentlich wie in V2. Aber es existiert intern eine gleichnamige Socket-Variable. Das heißt, du musst einfach eine Klasse von der TCPClient-Klasse erben lassen, und diese Eigenschaft veröffentlichen. So kannst du dann auch darauf zugreifen. Ich denke, es müsste auch irgendwie per Reflection hinzuzimmern sein, aber das ist keine angemessene Lösung.
Besuchen sie das VisualC++ - Forum
private Nachricht | Beiträge des Benutzers
Dexter
myCSharp.de - Member



Dabei seit:
Beiträge: 482
Herkunft: Österreich, Vlbg

Themenstarter:

beantworten | zitieren | melden

Soweit so gut nur hab ich nicht wirklich eine Ahnung, wie ich Client auf public stellen kann.

Dexter
Programmierer sind Maschinen die Koffein in Quellcode umsetzen.
private Nachricht | Beiträge des Benutzers
Franknstein
myCSharp.de - Member



Dabei seit:
Beiträge: 531

beantworten | zitieren | melden

Eine Möglichkeit währe:


using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;

namespace TcpTest
{
    class MyTcpClient : TcpClient
    {
        public Socket GetSocket()
        {
            return base.Client;
        }
    }
}


Allerdings bin ich mir nicht sicher, ob das so funktioniert, da ich es nicht testen kann.
Anstatt einer neuen Funktion könnte man auch die Client-Property überschreiben(Falls ich lüge, sagt es mir nur)?

Bearbeitung:
Ich habe noch eben den Namespace geändert...
Besuchen sie das VisualC++ - Forum
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1787

beantworten | zitieren | melden

Na, so richtig versteh ich das Problem nicht.
Wenn sich ein Client erfolgreich mit einem Server verbindet, weiss der Server doch Bescheid(IP/(Name/)Port) wer sich mit ihm verbunden hat, sonst würde die Kommunikation nicht funktionieren. Am Client braucht man da bestimmt nicht herumbasteln.
Was ist also genau das Problem? Wo und wie sollen die Daten zum tragen kommen?
TCP-Connection bedeutet was?(WebSite/Webservice, FTP, Socket etc.)
Fakt ist das Server und Client die Daten bekannt sind(sein müssen).

Kannst du deine Frage konkretisieren?
private Nachricht | Beiträge des Benutzers
Dexter
myCSharp.de - Member



Dabei seit:
Beiträge: 482
Herkunft: Österreich, Vlbg

Themenstarter:

beantworten | zitieren | melden

Also ich bin zZ dran einen kleinen Chat zu programmieren, denn ich dann im Informatikunterricht (der für mich etwas langweilig ist, fangen gerade mit Klassen an ) benutzen möchte. Da will ich zB auch leute bannen können und deshalb habe ich gefragt, ob ich aufm Server aus dem TcpClient die IP filtern kann, damit ich die IP "sperren" kann.

Dexter

//edit Benutzt wird das nur im LAN
Programmierer sind Maschinen die Koffein in Quellcode umsetzen.
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1787

beantworten | zitieren | melden

Das sollte kein Problem(Clientverweigerung). Du verwendest für den Server den TcpListener(eigentlich ne blöde frage, aber es könnte ja auch ein Server in c++ oder vb sein der Socketklasse anders behandelt)?

Kurzabriss, so wie ichs verstanden habe:
Szenario a:
Server bemerkt den Connectversuch, schaut in der Blacklist nach und beendet bei Treffer den Versuch(vielleicht noch ne Mitteilung wie "Danke, aber leider genügen sie nicht mehr den Ansprüchen des Chats").
Szenario b:
Admin aktualisiert Blacklist. Folge: alle bestehenden Verbindungen werden geprüft, bei Treffer: Trennung der zutreffenden Verbindungen + Nachricht: "Der Admin glaubt sie haben sich daneben benommen, bye. Bei Unklarheiten wenden sie sich an [email protected]".

Kleines Codebeispiel kann ich auch geben. Wenns klar ist(Servertechnologie). Das Beispiel könnte aber auch daneben gehen, da ich nicht weiss welche Besonderheiten in deiner bisherigen Lösung noch drin stecken könnten.
Wenns relativ egal ist, um so besser, dann kann simpel und allgemein sein.
Ich frag nur nochmal nach weil faul bin, und keinen sinnlosen Code posten möchte.
private Nachricht | Beiträge des Benutzers
Dexter
myCSharp.de - Member



Dabei seit:
Beiträge: 482
Herkunft: Österreich, Vlbg

Themenstarter:

beantworten | zitieren | melden

Über jeglichen Code wäre ich sehr erfreut. Hab es zZ sogelöst, dass der User seine IP ermittelt und dann an den Server schickt, der prüft dann, ob die halt in der BlackList sich befindet, wenn ja, dann kommt er in den Chat, wenn nein, dann wird die Connection wieder zugemacht und ne MessageBox erscheint halt.

Dexter

//edit beides von mir selbst geschrieben
Programmierer sind Maschinen die Koffein in Quellcode umsetzen.
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1787

beantworten | zitieren | melden

Funktioniert auch. Besser natürlich wenn der Server "adieu" sagt. Poste ich halt was.
coming soon(muss mal nachkramen)


Edit: meine Schnipselsuche hat nichts ergeben(wer weiss wo es rumliegt? ), implementiere gerade ein kleines Bsp. Oberfläche und Listener sind fertig. Es wird einfach sein und 1.1 VS-Solution(wird autom. konvertiert beim Laden in VS2005).
Ergebnis wird dann morgen(9.3) spätestens 10.3 vorliegen(je nach Zeit(0.5h/d)), aber halt simpel(namentlich: primitiv).
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1787

beantworten | zitieren | melden

So hier ist das kleine Programm.

Es ist etws schlampig implementiert. Zur Vorschau genügts, hoffe ich.
Attachments
private Nachricht | Beiträge des Benutzers