tcp chat ip übermitteln

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von jvbsl.

    tcp chat ip übermitteln

    Also wenn ich jetzt einen Tcp-Chat habe und der andere ist ein "noob" der nicht weiß wo man seine ip findet wie kann man die herausfinden sodass ich sie dann an eine sql mit seinem namen schicke und dann auf meinem client wenn ich seinen namen eingebe (mit dem er in der sql regestriert ist) automatisch seine ip connecte.

    Problem: ich weiß nicht genau wie die ip auslesen

    hab das hier

    VB.NET-Quellcode

    1. Imports System.Net.NetworkInformation
    2. Public Class Form1
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. Dim netiinterface As NetworkInterface
    5. Dim ipadresse As UnicastIPAddressInformation
    6. For Each netiinterface In NetworkInterface.GetAllNetworkInterfaces
    7. Label1.Text += "Schnittstelle: " & netiinterface.Name
    8. For Each ipadresse In netiinterface.GetIPProperties.UnicastAddresses
    9. Label1.Text += " IP-Adresse: " & ipadresse.Address.ToString & vbNewLine
    10. Next
    11. Next
    12. End Sub
    13. End Class


    nur so als kleines testprojekt

    Da kommen verschiedene ips raus aber wenn ich dann auf die seite geh ip-adress.com/ dann hab ich das problem, dass ich 2 verschiedene ips bekomm und wie ist das überhaubt mit routern hat da jeder computer wieder eine eigene ip. also ich weiß, dass jeder ne eigene lan ip hat aber gilt das auch für online connections also,dass man ganz klar von draußen daraufzugreifen kann. wie muss ich die ip auslesen damit das geht.

    nur noch so angemerkt in letzer zeit stelle ich öfters solche fragen wie tcp/ip/in autostart usw.... ich kann mir denken machen meinen sicher ich mache etwas schädliches:

    NEIN SICHER NICHT

    wollte das nur klarstellen

    pls helft mir aber jetzt trotzdem noch mit der ip :)

    danke :3

    *Topic verschoben*


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    warum nicht gleich so?
    bytes.com/topic/net/answers/10…tcpclients-ip-tcplistener
    oder so:
    codeproject.com/KB/IP/VBTcpClientIPAddress.aspx

    andernfalls kannst du das ganze anders machen:
    codeproject.com/KB/cs/network.aspx
    und das senden...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    so weit ich das aber verstehe basiert das darauf, dass hier schon eine connection oder der server oder was auch immer schon läuft jedoch muss das vor dem connecten auf einen server übertragen werden also pls vll einfach nen kleines codebsp wie man die ip ausliest


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    ftp server... oder datenbank...

    EDIT:

    VB.NET-Quellcode

    1. Dim wcl As New Net.WebClient
    2. wcl.Credentials = New Net.NetworkCredential("@@@", "pw")
    3. wcl.UploadString("ftp://host/filename.txt", "HIER MÜSSTE IP REIN")


    gibts denn jetzt keine möglichkeit?


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „thefiloe“ ()

    man weiß hier echt niemand wie man die ip ausliest ich meine es gibt so viele sachen die man in vb machen kann da wird man ja wohl auch die ip auslesen können

    ich hab jetzt auch noch das, das gibt die IPv4-Adresse aus jedoch kenn ich mich mit ips nicht aus welche brauch ich um über tcp zu chatten?

    VB.NET-Quellcode

    1. Imports System.Net
    2. Public Class Form1
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. Dim Addresslist() As IPAddress = _
    5. DNS.GetHostByName(Dns.GetHostName()).Addresslist
    6. Dim IPs As IPAddress
    7. ' alle IP-Adressen auflisten
    8. ListBox1.Items.Clear()
    9. For Each IPs In Addresslist
    10. ListBox1.Items.Add(IPs.ToString)
    11. Next IPs
    12. End Sub
    13. End Class


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

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

    genau soetwas war in meinen Links auch dabei...
    außerdem gibt das dier auch die IPv6 Adressen aus, du benötigst jedoch nur IPv4 Adressen, somit kannst du die anderen gleich mal rausfiltern ;)
    also wenn du ganz normal übers Netzwerk chatten willst, brauchst du deine ganz normale IPv4 Adresse(sollte die erste IPv4 aus der Liste sein) aber da du auch noch andere Netzwerkadapter haben kannst, könntest du vom Prinzip her auch über diese chatten wollen, somit musst du dafür selbst etwas entwickeln, wie was ausgewählt werden soll...

    Wenn du übers Internet chatten willst, benötigst du die Internet IP, welche du am besten über eine Website wie wieistmeineip.de ausliest.(Wichtig ist dabei, dass bei der Server seite Portforwarding für den genutzten Port eingestellt sein muss...)
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    also wenn ich das richtig verstanden habe wenn ich also dirket ans internet ohne router angeschlossen bin die IPv4

    wenn ich einen Router habe IPv6


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    nö....
    beidesmal ist es eine IPv4 Adresse, deine Internet IP kannst du aber am einfachsten über ein externes Server Programm auslesen, wieistmeineip.de/ hiermit geht es z.B. auch...da steht dick und fett deine Internet IP und auch Version 4...vergleich diese mit deiner Lokalen IP und du wirst einen unterschied bemerken...

    also die wichtigste frage hierbei: willst du einen Chat im lokalen Netzwerk oder übers Internet erstellen?
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    ohhaaaaarrrgggg...
    Bis ich deine Beiträge verstanden habe.. Benutze doch bitte zwischendurch diese Zeichen "." und dieses Zeichen "," , dass erleichtert das lesen ungemein.

    Was willst du genau machen? Eine Verbindung über das lokale Netzwerk oder über das Internet? Falls es nur über das lokale Netzwerk gehen soll, kannst du doch einfach einen UDP Broadcast zum herausfinden der IP senden. Ich glaube dir fehlen aber teilweise elementare Kenntnisse, daher lies dir bitte einmal folgenden Wikipedia Artikel durch: de.wikipedia.org/wiki/IPv4
    So gehts zum Beispiel:

    VB.NET-Quellcode

    1. Imports System.Net
    2. ...
    3. Public Function GetExternalIP(ByVal Provider As String) As String
    4. Try
    5. Dim WebReq As HttpWebRequest = HttpWebRequest.Create(Provider)
    6. Dim WebRes As HttpWebResponse = WebReq.GetResponse()
    7. Dim ResStream As System.IO.Stream = WebRes.GetResponseStream
    8. Dim ResStreamReader As New StreamReader(ResStream, Encoding.UTF8)
    9. Dim IP As String = ResStreamReader.ReadToEnd
    10. ResStream.Close()
    11. WebRes.Close()
    12. Return IP
    13. Catch
    14. End Try
    15. End Function
    16. ...
    17. Label1.Text = "Meine externe IP ist: " & GetExternalIP("http://service.jan-welker.de/myip.ashx")


    Statt in ein Label, könnte man dies auch in eine Prozedur packen die das dann in deine Datenbank pusht...
    (den Link aber drin lassen, der liefert die IP)
    bisher wissen wir nicht, ob er übers Internet, oder übers Lokale Netzwerk verbinden will, aber ich bin mir relativ sicher, dass ihm das nicht weiterhilft, da das Portforwarding ja aktiviert sein muss...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---