netcat führt meine Aktionen nicht aus

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
blueflidge
Beiträge: 1414
Registriert: 31.01.2005 10:16:49
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: bei Bonn

netcat führt meine Aktionen nicht aus

Beitrag von blueflidge » 31.03.2008 10:31:19

Moin,

ich versuche derzeit mittels netcat einen Befehl an eine im Netz befindliche Fritz!Box zu senden:

Code: Alles auswählen

#!/bin/bash

cat <<END | nc -w 1 fritz.box 49000 > /dev/null
POST: /upnp/control/WANIPConn1 HTTP/1.1
HOST: fritz.box:49000
SOAPACTION: "urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination"
CONTENT-TYPE: text/xml ; charset="utf-8"
Content-Length: 293

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<u:ForceTermination xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" />
</s:Body>
</s:Envelope>
END
leider kommt der Befehl an der Gegenseite nicht an. Der Host fritz.box ist erreichbar.

Wenn ich das ganze mittels curl sende, geht es ohne Probleme:

Code: Alles auswählen

#!/bin/bash
curl "http://fritz.box:49000/upnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction: urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination" -d "@data"
data

Code: Alles auswählen

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<u:ForceTermination xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" />
</s:Body>
</s:Envelope> 
Mich würde jetzt mal interessieren, warum die netcat-Variante nicht funktioniert, da ich die bevorzuge (bei der curl-Version brauche ich extra curl und es sind zwei Dateien)
Beste Grüße
Tamara
The Debian Women Project

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 31.03.2008 12:19:21

hi,

versuch' erstmal, den ':' hinter POST wegzulassen.

Wenn das nicht hilft, könntest du es noch mit der exakten
Schreibweise versuchen:

Code: Alles auswählen

POST /upnp/control/WANIPConn1 HTTP/1.1
Host: fritz.box:49000
SOAPAction: "urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination"
Content-Type: text/xml; charset="utf-8"
Content-Length: 293
Beware of programmers who carry screwdrivers.

Benutzeravatar
blueflidge
Beiträge: 1414
Registriert: 31.01.2005 10:16:49
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: bei Bonn

Beitrag von blueflidge » 31.03.2008 15:11:30

cosmac hat geschrieben:hi,

versuch' erstmal, den ':' hinter POST wegzulassen.

Wenn das nicht hilft, könntest du es noch mit der exakten
Schreibweise versuchen:

Code: Alles auswählen

POST /upnp/control/WANIPConn1 HTTP/1.1
Host: fritz.box:49000
SOAPAction: "urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination"
Content-Type: text/xml; charset="utf-8"
Content-Length: 293
Hab ich gemacht, allerdings keine Änderung :-(
Beste Grüße
Tamara
The Debian Women Project

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 31.03.2008 15:24:16

hmm, mehr exakte Schreibweise: eigentlich sollen
HTTP-Header-Zeilen mit '\r\n' enden, vielleicht ist der
Fritz-Webserver so pingelig. Aber dazu müsste cat
das '\r' interpretieren.

"echo -e" kann das, aber davon wird das Script nicht
gerade übersichtlicher...
Beware of programmers who carry screwdrivers.

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: netcat führt meine Aktionen nicht aus

Beitrag von Danielx » 31.03.2008 22:17:25

salnet hat geschrieben:leider kommt der Befehl an der Gegenseite nicht an.
Woran siehst du das?
Schickt die Box dir denn keine Meldung zurück?
salnet hat geschrieben:Mich würde jetzt mal interessieren, warum die netcat-Variante nicht funktioniert
Hm, also ich habe im Internet immer nur die Version mit Leerzeichen vor diesen Zeilen gefunden:

Code: Alles auswählen

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <u:ForceTermination xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" />
   </s:Body>
</s:Envelope>
Bei dir fehlen diese Leerzeichen, weshalb "Content-Length: 293" nicht mehr stimmen dürfte, vielleicht liegt es ja daran.

Funktioniert denn bei dir (erstmal nur zum Testen) das hier:

Datei "hihi" anlegen:

Code: Alles auswählen

POST /upnp/control/WANIPConn1 HTTP/1.1
HOST: fritz.box:49000
SOAPACTION: "urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination"
CONTENT-TYPE: text/xml ; charset="utf-8"
Content-Length: 293

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <u:ForceTermination xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" />
   </s:Body>
</s:Envelope>
(Achtung, im neuen Forum sehen die Zeilen, zumindest bei mir, teilweise umgebrochen aus obwohl sie das nicht sind, einfach Text markieren und kopieren, dann ist alles ok.)

Und dann:

Code: Alles auswählen

#!/bin/bash
cat hihi | nc -w1 fritz.box 49000 > /dev/null
:?:

Gruß,
Daniel

Benutzeravatar
blueflidge
Beiträge: 1414
Registriert: 31.01.2005 10:16:49
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: bei Bonn

Re: netcat führt meine Aktionen nicht aus

Beitrag von blueflidge » 31.03.2008 22:30:09

Hallo Daniel
Danielx hat geschrieben:
salnet hat geschrieben:leider kommt der Befehl an der Gegenseite nicht an.
Woran siehst du das?
Ich seh das an der Log-Datei der Fritzbox, da steht nämlich nix drin. Wenn es eine neue IP gegeben hat, dann steht das normalerweise da drin (z.B. wenn ich die xml über curl aufrufe).
Hm, also ich habe im Internet immer nur die Version mit Leerzeichen vor diesen Zeilen gefunden:

Code: Alles auswählen

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <u:ForceTermination xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" />
   </s:Body>
</s:Envelope>
Bei dir fehlen diese Leerzeichen, weshalb "Content-Length: 293" nicht mehr stimmen dürfte, vielleicht liegt es ja daran.
So ist das bei mir auch. Das die Leerzeichen nicht dargestellt werden war noch ein Überbleibsel aus dem alten phpBB. Das konnte damit irgendwie nicht umgehen.
Funktioniert denn bei dir (erstmal nur zum Testen) das hier:

Datei "hihi" anlegen:

Code: Alles auswählen

POST /upnp/control/WANIPConn1 HTTP/1.1
HOST: fritz.box:49000
SOAPACTION: "urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination"
CONTENT-TYPE: text/xml ; charset="utf-8"
Content-Length: 293

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <u:ForceTermination xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" />
   </s:Body>
</s:Envelope>
(Achtung, im neuen Forum sehen die Zeilen, zumindest bei mir, teilweise umgebrochen aus obwohl sie das nicht sind, einfach Text markieren und kopieren, dann ist alles ok.)

Und dann:

Code: Alles auswählen

#!/bin/bash
cat hihi | nc -w1 fritz.box 49000 > /dev/null
:?:
Nö, will auch nicht.
Beste Grüße
Tamara
The Debian Women Project

storm
Beiträge: 1581
Registriert: 01.05.2004 13:21:26
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DE

Re: netcat führt meine Aktionen nicht aus

Beitrag von storm » 01.04.2008 19:06:35

Hast du netcat beim Versuch des Sendens mal mit 'nem sniffer auf die Finger gekuckt?

ciao, storm
drivers/ata/libata-core.c: /* devices which puke on READ_NATIVE_MAX */

Benutzeravatar
blueflidge
Beiträge: 1414
Registriert: 31.01.2005 10:16:49
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: bei Bonn

Re: netcat führt meine Aktionen nicht aus

Beitrag von blueflidge » 01.04.2008 21:14:17

storm hat geschrieben:Hast du netcat beim Versuch des Sendens mal mit 'nem sniffer auf die Finger gekuckt?

ciao, storm
Nein, habe ich noch nicht. Werde mal Wireshark drauf ansetzen.
Beste Grüße
Tamara
The Debian Women Project

Antworten