- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 7 von 7

Thema: WifiServer: anderer (zusätzlicher) Port als 80 ?

  1. #1
    HaWe
    Gast

    WifiServer: anderer (zusätzlicher) Port als 80 ?

    Anzeige

    LiFePo4 Akku selber bauen - Video
    hallo
    bisher läuft mein esp WifiServer auf Port 80, nun möchte ich einen 2. Server parallel betreiben (andere Website).
    Was immer ich auch probiere, Ports wie 79 (oder 81 oder auch 23) funktionieren nicht: zwar kann man das Gerät anpingen, und im Speedport ist das Gerät auch mit dieser IP aktiv, und auch die Ports sind freigeschaltet, aber wenn man die IP im Browser eintippt (z.B. 192.168.1.99) dann wird keine Verbindung hergestellt.
    Dabei ist das doch eigentlich völlig unwichtig mit dem Port, da ich ja über keine dyndns vom www darauf zugreife.
    Allerdings selbst mein dyndns Provider bestätigt, dass auf z.B. port 79 zugegriffen werden kann.

    #define http_port 79
    WiFiServer wifiserver(http_port);

    Gebe ich allerdings 80 ein, was eigentlich für den anderen esp vorgesehen ist, klappt es!

    Klicke auf die Grafik für eine größere Ansicht

Name:	Portfreischaltung.jpg
Hits:	7
Größe:	100,8 KB
ID:	33034

    Offenbar blockieren also bisher alle Zahlen verschieden von 80 bereits den Zugriff über die IP - seltsam - ganz zu schweigen über die url ...

    Welcher andere (zusätzliche) Port als 80 ist ebenfalls möglich? Oder was muss ich im Speedport anders einstellen?

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    das liegt daran dass HTTP normalerweise nur auf port 80 läuft und dein browser ohne zusatz information nur versucht auf diesen zu verbinden ... du musst bei der adresse hinten noch den port angeben mit doppelpunkt getrennt (http://IP:Port/)
    alternativ kannst du in der GET anfrage auch unterordner verarbeiten!

    wenn dein browser sich verbindet startet er eine GET anfrage, die kannst du auf der server seite lesen udn die informationen darin abrufen .... so taucht da auch die angeforderte seite drin auf wenn ich z.b. http://someIP:somePort/EinUnterOrdner aufrufe

    je nachdem WAS da hinter dem schrägstrich steht kannst du dann z.B. eine andere seite anzeigen .... ich würde dir empfehlen ein paar grundlegende infos über das HTTP protokoll anzusehen um zu verstehen wie du mit einem bare metal server und einem normalen bnrowser z.B. mausklicks verarbeiten kannst


    TL;DR; Versuchs mal mit Port 81 und ruf dann http://192.168.1.99:81/ auf ... ich wette das klappt sogar mit dem link den das forum aus meinem text generiert ...
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  3. #3
    HaWe
    Gast
    Zitat Zitat von Ceos Beitrag anzeigen
    das liegt daran dass HTTP normalerweise nur auf port 80 läuft und dein browser ohne zusatz information nur versucht auf diesen zu verbinden ... du musst bei der adresse hinten noch den port angeben mit doppelpunkt getrennt (http://IP:Port/)
    alternativ kannst du in der GET anfrage auch unterordner verarbeiten!

    wenn dein browser sich verbindet startet er eine GET anfrage, die kannst du auf der server seite lesen udn die informationen darin abrufen .... so taucht da auch die angeforderte seite drin auf wenn ich z.b. http://someIP:somePort/EinUnterOrdner aufrufe

    je nachdem WAS da hinter dem schrägstrich steht kannst du dann z.B. eine andere seite anzeigen .... ich würde dir empfehlen ein paar grundlegende infos über das HTTP protokoll anzusehen um zu verstehen wie du mit einem bare metal server und einem normalen bnrowser z.B. mausklicks verarbeiten kannst


    TL;DR; Versuchs mal mit Port 81 und ruf dann http://192.168.1.99:81/ auf ... ich wette das klappt sogar mit dem link den das forum aus meinem text generiert ...
    Port 23, 79, 81 und 82 können nicht von dyndns erreicht werden , obwohl im Speedport frei geschaltet, nur 80 - welcher Port geht sonst noch?

    ps, immerhin erreiche ich die IP mit port 81 per Browser über http://192.168.1.99:81, wenn auch nicht dann per www ! (schonmal ein kleiner Schritt! )
    Geändert von HaWe (09.11.2017 um 21:06 Uhr)

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    wenn du portweiterleitung über den router machst, wird es sogar noch einfacher

    mach einen server auf port 80 auf und den anderen auf port 8080 (das ist üblicherweise der alternative HTTP port), aus dem internet solltest du dann 2 portweiterleitungen zu deinem gerät schalten können
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  5. #5
    HaWe
    Gast
    Zitat Zitat von Ceos Beitrag anzeigen
    wenn du portweiterleitung über den router machst, wird es sogar noch einfacher

    mach einen server auf port 80 auf und den anderen auf port 8080 (das ist üblicherweise der alternative HTTP port), aus dem internet solltest du dann 2 portweiterleitungen zu deinem gerät schalten können
    hallo,
    danke, aber irgendwie klappt es mit 8080 überhaupt nicht (dyndns-Provider kann auf Port nicht zugreifen).
    81 hat immerhin gestern mal geklappt, daher jetzt wieder 81.

    Seltsam: auf 81 kann jetzt plötzlich auch nicht mehr zugegegriffen werden, obwohl im Router freigegeben wie zuvor. Manchmal dauert es aber auch ein paar Minuten, bis die Porteinstellungen wirklich übernommen werden, so habe ich zumindest den Eindruck.

    Immerhin kann ich aber die Website lokal über IP:81/ und per www mit url:81/ aufrfen. Da es ja nur für mich ist, ist das nicht so tragisch, aber komisch ist das schon.
    Andererseits kann ich im Router nur 1 url für den host hinterlegen, das ist immer noch meine 1. von bisher, damit klappt alles automatisch über port 80 - vlt ist das ja der Grund.

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    Andererseits kann ich im Router nur 1 url für den host hinterlegen, das ist immer noch meine 1. von bisher, damit klappt alles automatisch über port 80 - vlt ist das ja der Grund.
    okay das ist jetzt router spezifisch und cih vermute mal schwer dass dein router da wohl ein wenig "beschränkt" ist ... obwohl es ja eigentlich eher eie erleichterung sein soll das zu steuern behindert es bei solchen dingen doch eher

    dann musst du wohl auf meine alternativ lösung zurückgreifen, du lässt den server auf port 80 laufen und musst beim GET request eben die angeforderte seite auswerten udn entsprechend die richtige seite zurück geben

    zum aufrufen machst du dann deine übliche adresse mit zusätzlichem ordnerpfad

    http:// was auch . immer / pfad1
    http:// was auch . immer / pfad2
    ...

    und bei der ankommenden GET anfrage reagierst du mit einer verzwigung für die antwortseite

    Code:
    For example, the browser translated the URL http://www.nowhere123.com/doc/index.html into the following request message:
    
    GET /docs/index.html HTTP/1.1
    Host: www.nowhere123.com
    Accept: image/gif, image/jpeg, */*
    Accept-Language: en-us
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
    (blank line)
    zusatzinfo, mit regex kannst du die GET anfrage leicht auswerten

    (?<=\bGET\s).+?(?=[\s\n]) => liefert ales nach der eigentlichen adresse auf inklusive des ersten / nach dem .com ... also aus "www.irgendwas.com/seite_1" wird damit "/seite_1"
    (?<=\bHost:\s).+?(?=[\s\n]) => liefert die URL die aufgerufen worden sit, so kannst du z.B. 2 domains auf die gleiche IP mappen und je nach aufruf kommt dann ein anderes ergebnis nach dem obigen Beispiel würde dann quasi als ERgebnis "www.irgendwas.com" rauskommen

    (?<=\bGET\s\/).+?(?=[\s\n]) diese variante filtert zusätzlich das erste "/" mit raus wenns stört

    und wenn du möchtest kann ich die regex auch etwas genauer erläutern oder man schaut sie sich einfach mal live an
    https://regex101.com/r/h4A0Zw/1
    Geändert von Ceos (10.11.2017 um 10:28 Uhr)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  7. #7
    HaWe
    Gast
    vielen Dank für deine Mühe alles so genau zu erklären!

    Bisher nutze ich die /Ordnerpfade für die website-Buttons zum Schalten: /OUT1=ON /OUT2=OFF
    abgespeckter Code s. hier:
    http://www.mindstormsforum.de/viewtopic.php?f=78&t=9066

    ich rufe also jetzt einfach meine 2. website immer mit dem Port auf, das geht schon, Hauptsache, ich komme auch von unterwegs mit dem Handy drauf.

    Alles andere übersteigt jetzt aber deutlich meine Skills...

    - - - Aktualisiert - - -

    update:
    klappt leider doch nicht richtig, sobald beide website-hosts aktiv sind: dann kann ich zwar die beiden websites über die urls nebeneinander laden, aber die Steuerung über die Buttons funktioniert nicht mehr zuverlässig (Button press wird meist - wenn auch nicht immer - ignoriert), und außerdem wird häufig die neue website ebenfalls unter der Caption der alten angezeigt.

Ähnliche Themen

  1. E_INT1 als zusätzlicher ADC - Problem
    Von Gerhard M im Forum Robby RP6
    Antworten: 2
    Letzter Beitrag: 05.02.2017, 16:15
  2. Antworten: 2
    Letzter Beitrag: 02.02.2017, 22:38
  3. Zusätzlicher Bumper am RP6/ Sicherung vom RP6
    Von Virus im Forum Robby RP6
    Antworten: 4
    Letzter Beitrag: 25.10.2009, 16:01
  4. Anderer IR-Transreciever
    Von corpsealive im Forum Asuro
    Antworten: 5
    Letzter Beitrag: 17.04.2007, 17:19
  5. Zusätzlicher OP am Mega8 EIngang?
    Von gamoz im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 12.05.2006, 10:58

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen