送信した Curl リクエストが正しいのに、UPNP がエラー 501 を返すのはなぜですか?

送信した Curl リクエストが正しいのに、UPNP がエラー 501 を返すのはなぜですか?

ルーターで UPNP を使用しようとしているのですが、501 エラーが発生し続けます

私が使用しているコマンド

curl "192.168.1.1:52869/control/igd/devinfo" --header "SOAPAction: urn:dslforum-org:service:DeviceInfo:1#GetInfo" -vv -d @1.xml -H "Content-Type: text/xml;charset=utf-8"

デバイス情報.xml私が情報を得たのは…そしてIGD.xmlSOAPActionを取得したのは...まさにこの部分です

<serviceList>
<service>
<serviceType>urn:dslforum-org:service:DeviceInfo:1</serviceType>
<serviceId>DeviceInfo</serviceId>
<controlURL>/control/igd/devinfo</controlURL>
<eventSubURL>/event/igd/devinfo</eventSubURL>
<SCPDURL>/DeviceInfo.xml</SCPDURL>

何らかの未知の理由で、機能している唯一のリクエストもこのツールからのものです

ここに画像の説明を入力してください

IGD.xml にはたくさんのオプションが用意されていますが、ツールで使用できるのはポート転送といくつかの WAN オプションだけです。

機能するコマンド

curl "192.168.1.1:52869/upnp/control/WANIPConn1"  --header "SOAPAction: urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress" -vv -d @1.xml -H "Content-Type: text/xml;charset=utf-8"

1.xml ファイルは、主に SOAP アクションと通常の XML SOAP リクエストが混在したように見えます。

<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetExternalIPAddress xmlns:u=”urn:schemas-upnp-org:service:WANIPConnection:1″></u:GetExternalIPAddress></s:Body></s:Envelope>

ツールがigd.xmlファイルとは全く異なるURLをどこから取得したのかさえわからなかったので、デバイスのファームウェアファイル内の文字列を検索し、ゲートデスク画像には 2 つのオプションしかありませんが、これはどういうことでしょうか。どこに問題があるのでしょうか。

答え1

のスキーマの周囲にスマート引用符があります。1.xmlまずそれを修正してください (ここに貼り付けただけの場合は除きます)。

答え2

@gaddman (ありがとう) が言ったことに加えて.... この問題に遭遇した人にとって確実に役立つ情報がいくつかあります。

手動で行う場合は、ほとんどの場合、リクエストはこの方法で行われます (私は curl を使用しています)

カール 「(ここでは、デバイスのIPとUPNPポート+作成したい構成の制御URLを入力します。これは、次のようなツールを使用して確実に見つけることができます。ミニアップnpc-2.1)"の場合、このヘッダー--header "SOAPアクション:(そして、この画像のようにアクションURLの上部にある長い部分)+#(必要なアクション)-vv -d@必要なアクションの情報を入れるファイル.xml に、この静的ヘッダー -H "Content-Type: text/xml;charset=utf-8" を追加します。

基本的にコマンドは次のようになります

curl "192.168.1.1:52869/control/igd/wlanc_1_1" --header "SOAPAction: urn:dslforum-org:service:WLANConfiguration:1#GetInfo" -vv -d @2.xml -H "Content-Type: text/xml;charset=utf-8"

ここに画像の説明を入力してください

miniupnpc-2.1 フォルダのコマンド ラインに listdevices.exe と入力すると URL が取得されます。xml ファイルはほとんどが静的で、動的な部分は次のような SOAP アクション ヘッダーで構成されています。

<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetInfo xmlns:u="urn:dslforum-org:service:WLANConfiguration:1"></u:GetInfo></s:Body></s:Envelope>

このようなことについて全く分からない場合は、GUIツールを使うことを本当にお勧めします UPnP テスターWindowsの場合またはUPnP ツール私は他のものよりもこれを好みます。なぜなら、アップデートが受けられ、ほとんどの場合機能が優れているからです。

説明が明確でなくて申し訳ありません。私はまだこの分野に不慣れです。

関連情報