zugang zum lokalen webinterface?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

zugang zum lokalen webinterface?

Beitrag von reiter »

ich hab noch ein problem
teilweise funktioniert es schon.
im moment muss ich die ip und port mit in den quellccode schreiben da funktioniert der login mit verschiedenen ports
nun möchte ich das aber trennen und wie im foto die ip und port in der form eingeben
wie deklariere ich das , das die ip und port auch in der oberfläche eingegeben werden kann , da ich mehrere Boxen habe und die mit verschiedenen ip's und Ports nutze

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
 
var
  HTTP: TIdHTTP;
 
begin
  HTTP := TIdHTTP.Create;
  try
    HTTP.Request.BasicAuthentication := True;
    HTTP.HandleRedirects := True;
 
    HTTP.Request.Username := UsernameEdit.Text;
    HTTP.Request.Password := PasswordEdit.Text;
    Memo1.Lines.Text := StringReplace(HTTP.Get('http://192.168.35.147:81'),'<br>',sLineBreak,[rfReplaceAll]); // möchte die IP und Port in einer maske eingeben siehe foto
  finally
    HTTP.Free;
  end;
end;
Dateianhänge
Bildschirmfoto 2017-12-21 um 19.16.49.png
Zuletzt geändert von m.fuchs am Fr 22. Dez 2017, 14:42, insgesamt 1-mal geändert.
Grund: Highlighter hinzugefügt

reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: zugang zum lokalen webinterface?

Beitrag von reiter »

Mitt dem http Proxy Port geht's leider nicht...
Wie kann ich das den noch realisieren?

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 259
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: zugang zum lokalen webinterface?

Beitrag von h-elsner »

Ich denke, einfach ein Edit Feld anlegen, wo die IP-Adresse eingetragen werden kann. Besser noch eine ComboBox, wo die letzten 4-5 benutzten IP-Adressen gespeichert werden.
Die aktuelle steht dann in der ComboBox.Text.
Zum Überprüfen, ob die Eingabe wirklich eine gültige IP-Adresse ist, habe ich das hier gefunden:

Code: Alles auswählen

 
uses RegexPr;
 
function IsIPAddress(const inp: string): boolean;
var IPRegex: TRegExpr;
begin
  try
    IPRegex:=TRegExpr.Create;
    IPRegex.Expression:=RegExprString('\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b');
       hier gegebenfalls noch deine Subnetzmaske überprüfen
    result:=IPRegex.Exec(inp);
  finally
    IPRegex.Free;
  end;
end;
 
IPaddress:=trim(ComboBox1.Text);
If IsIPAddresss(IPaddress) then begin
  {hier hast du eine gültige IP-Adresse im String IPaddress}
 
   Mach was mit der IPaddress ...
 
end else begin
 
  Fehlerbehandlung - Falsche Eingabe oder so...
 
end;
 


Für Port gilt die gleiche Vorgehensweise. Wie du die letzten gültigen Eingaben in der ComboBox merkst, kannst du im Qulltext von q500log2kml nachsehen, den ich dir ja geschickt habe.

Gruß und schöne Weihnachten, HE

reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: zugang zum lokalen webinterface?

Beitrag von reiter »

Danke Helmut...
Werde ich mir nachher zur Gemüte führen...
Vielen Dank für deine Hilfe... Das mit der compobox ist ne super Idee da ich ja mehrere IP Adressen und Ports ansprechen möchte

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: zugang zum lokalen webinterface?

Beitrag von theo »

@reiter: Ich verstehe deine Frage nicht.

reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: zugang zum lokalen webinterface?

Beitrag von reiter »

@theo
Also es ist so das ich das realisieren will wie auf dem Foto...
Weiß aber nicht wie ich das mit der IP und Port noch realisieren soll
Als Beispiel steht da die IP als Ausgabe um den Benutzername und Passwort zu testen, das funktioniert ja auch..
Jetzt muss ich nur einen Weg finden wie ich die IP und Port nicht als Ausgabe sondern Eingabe deklarieren kann also wie auf dem Foto die IP eingegeben wird,der Port,Username,Passwort und der Login funktioniert... In den memofeld soll dann ne Ausgabe hin... Das ist im Moment nur ein Test das der Login funktioniert...
Ich hoffe jetzt ist es besser zu verstehen

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: zugang zum lokalen webinterface?

Beitrag von theo »

reiter hat geschrieben:Ich hoffe jetzt ist es besser zu verstehen

Nicht wirklich. Ich weiß nicht wo dein Problem ist.
Username und Passwort liest du ja auch aus dem Formular.
Warum soll das mit der IP Adresse nicht auch gehen?

Oder verstehe ich dich komplett falsch?

reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: zugang zum lokalen webinterface?

Beitrag von reiter »

Nein... Verstehst schon richtig...
Wenn ich http.request.port := Portedit.text; (bzw. http.port := Portedit.text;)
Schreibe bringt er mir Fehler... Muss ich das noch in var deklarieren ?
Das selbe bei der IP

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: zugang zum lokalen webinterface?

Beitrag von m.fuchs »

reiter hat geschrieben:Wenn ich http.request.port := ; (bzw. http.port := Portedit.text;)
Schreibe bringt er mir Fehler... Muss ich das noch in var deklarieren ?

Nein, ich fürchte du musst ganz dringend mal ein Einsteigerwerk für Pascal lesen. Essential Pascal ist recht brauchbar und kostet nichts.

Die Property Port ist kein String, sondern ein Integer. Du müsstest StrToInt verwenden um das umzuwandeln.

reiter hat geschrieben:Das selbe bei der IP

Keine Ahnung wo du das eintragen willst, ABER: Du verwendest doch schon HTTP.Get in deinem Quellcode. Anstelle des festkodierten Strings, musst du halt die Daten aus den Eingabefeldern hineinpacken.

Code: Alles auswählen

HTTP.Get(ComboBox1.Text + ':' + Portedit.text)
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: zugang zum lokalen webinterface?

Beitrag von reiter »

Ok danke für den Link...
Ich lese schon ne Weile sehr viel und Weiß das ich mir erstmal weitere Grundlagen aneignen muss
Und kleinere Brötchen backen
Danke für die Hilfe

PS:
danke für die zeile.. jetzt ist es fast wie ich es gern hätte

(HTTP.Get(ComboBox1.Text + ':' + ComboBox2.Text)

das funktioniert .
das einzigste, ich muss bei IP der Box (ComboBox1.Text) statt der IP 192.168.100.100 das Http:// davorschreiben also statt 192.168.100.100 muss ich http://192.168.100.100 schreiben... das mit dem port funktioniert
kann man das http nicht in die zeile intigrieren?

danke

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 259
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: zugang zum lokalen webinterface?

Beitrag von h-elsner »

Ich habe dir mal eine kleine Testanwendung geschrieben:
- Simple Eingabefelder für IP Adresse, Portnummer, Login und Passwort
- IP und Port wird geprüft
- er merkt sich die letzten zehn IP-Adressen
- Er merkt sich die Session Properties für den nächsten Programmstart.

Das ist stark vereinfacht (nur als Demo, wie es sein könnte), aber Teile kannst du bei dir irgendwie verwenden. Die Ausgabe in ein Memo zu schreiben, ist auch ungeschickt, weil du mit der Ausgabe bestimmt was anfangen willst. Das musst du dir dann überlegen...

Eingaben in DropDownListe merken:

Code: Alles auswählen

 
      if ComboBox1.Items.IndexOf(ComboBox1.Text)<0 then  {wenn IP noch nicht in der Liste}
        ComboBox1.Items.Insert(0, ComboBox1.Text);       {oben eintragen}
      if ComboBox1.Items.Count>AnzIPs then ComboBox1.Items.Delete(AnzIPs); {Anzahl begrenzen}
 


URL zusammenbauen (ComboBox1.Text enthält geprüfte IP Adresse, Edit2.Text enthält geprüfte Portnummer):

Code: Alles auswählen

 
    Memo1.Text:=HTTP.Get('http://'+ComboBox1.Text+':'+Edit2.Text);
 


Gruß HE
Dateianhänge
HTTPrequest.zip
Demo für Eingabefelder
(5.24 KiB) 84-mal heruntergeladen

reiter
Beiträge: 217
Registriert: Sa 18. Nov 2017, 16:58

Re: zugang zum lokalen webinterface?

Beitrag von reiter »

Hallo Helmut...
Vielen Dank für das Demo...
Hab ich mich sehr gefreut... Sowas habe ich im Netz die ganze Zeit gesucht aber nirgends gefunden...
Vielen Dank
Und fröhliche Weihnachten...

Gruß
Andy

Antworten