TCPListen auf allen Ports

  • Hallo,
    Ich habe das Problem,
    dass ich ein Telegramm von einer bekannten IP erhalte,
    aber der Port unbekannt ist und sich ändert,
    nach mir unbekannten regeln.

    Wie kann ich die Pakete auslesen, unabhängig des Port?

    Bisher scheitern alle meine versuche mit TCPListen.

    Dank und Gruß
    Ingo

  • Nun ich bezweifle sehr stark dass sich die Ports ständig ändern, denn dafür ist TCP nicht vorgesehen. Du kannst auch nicht auf alle Ports hören, da das das Konzept von TCP völlig untergraben würde. Ich denke eher, dass DU die Verbindung zum anderen Host erstellen musst, denn die einzige Situation bei der sich Ports zufällig ändern ist der ausgehende Port. Sprich wenn du versuchst zu einem entfernten Host eine Verbindung aufzubauen, wählt dein Betriebsystem einen zufälligen Ausgangs-Port dem du dann deine Antwort sendest. Vielleicht musst du dich auch erst mit einem anderen Port verbinden und dort wird dir dann gesagt auf welchen Port du hören musst. Ist
    aber eher unwahrscheinlich. Es würde auch helfen wenn wir wüssten von welchem Programm du Daten erwartest.

    Gruss Shadowigor

  • Wenn du genügend Ressourcen hast kannst du ja für jeden Port (afair 0 - ~65565) einen lauschenden Port öffnen. Dann hört dein Programm alles was an dich gesendet wird. Du solltest dich allerdings nicht wundern wenn das Surfen im Web und viele andere Dienste/Dinge nicht funktionieren während deine Lauschaktion läuft.

    Schlicht gesagt mit AutoIt Boardmitteln unmöglich. Ob irgendein AutoIt-User eine UDF hat die es ermöglicht den Datenverkehr gleichzeitig mit zu sniffen ohne den eigentlichen Dienst zu beeinträchtigen weis am besten Tante Google.

    mfg autoBert

  • Nun ich bezweifle sehr stark dass sich die Ports ständig ändern, denn dafür ist TCP nicht vorgesehen. Du kannst auch nicht auf alle Ports hören, da das das Konzept von TCP völlig untergraben würde. Ich denke eher, dass DU die Verbindung zum anderen Host erstellen musst, denn die einzige Situation bei der sich Ports zufällig ändern ist der ausgehende Port. Sprich wenn du versuchst zu einem entfernten Host eine Verbindung aufzubauen, wählt dein Betriebsystem einen zufälligen Ausgangs-Port dem du dann deine Antwort sendest. Vielleicht musst du dich auch erst mit einem anderen Port verbinden und dort wird dir dann gesagt auf welchen Port du hören musst. Ist
    aber eher unwahrscheinlich. Es würde auch helfen wenn wir wüssten von welchem Programm du Daten erwartest.

    Gruss Shadowigor

    Hallo,
    Ich möchte eine Phillips hue steuern, was mir bereits auch gelingt.
    Befehle kann ich über die Bridge an die Lampen senden.

    Nun möchte ich aber noch die infos der Lampen anfragen.
    Die Anfrage kann ich senden und die Antwort kommt auch zurück.
    Leider immer auf einem anderen port, wodurch ich das Telegramm nicht lesen kann.
    In Wireshark kann ich sehen, das das Telegramm ankommt und das sich der port jedes mal ändert.

  • Wenn du genügend Ressourcen hast kannst du ja für jeden Port (afair 0 - ~65565) einen lauschenden Port öffnen. Dann hört dein Programm alles was an dich gesendet wird. Du solltest dich allerdings nicht wundern wenn das Surfen im Web und viele andere Dienste/Dinge nicht funktionieren während deine Lauschaktion läuft.

    Schlicht gesagt mit AutoIt Boardmitteln unmöglich. Ob irgendein AutoIt-User eine UDF hat die es ermöglicht den Datenverkehr gleichzeitig mit zu sniffen ohne den eigentlichen Dienst zu beeinträchtigen weis am besten Tante Google.

    mfg autoBert

    Hallo, was du hier schreibst verstehe ich.
    Ich bräuchte quasi ein Programm zum lauschen, ähnlich wie es wireshark macht.

    Gruß Ingo

  • Genau das habe ich mir gedacht. Bei deiner Anfrage wählt das System einen zufälligen Port und sendet diesen mit. Deine Lampe antwortet dann auf diesem Port. Den Port selber musst du aber nicht wissen. Du kannst einfach das Handle nehmen welches du von TCPConnect erhalten hast und dann per TCPRecv auf diesem Port Daten empfangen. TCP ist nämlich Bidirektional.