為什麼 UPNP 給我錯誤 501,即使我發送的 Curl 請求是正確的?

為什麼 UPNP 給我錯誤 501,即使我發送的 Curl 請求是正確的?

我嘗試在路由器上使用 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.xml我從...得到了 SOAPAction 正是這一部分

<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 檔案看起來主要是肥皂操作和常規 xml肥皂請求的混合。

<?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 完全不同的 URL,因此我搜索了設備固件文件中的字符串,並找到了一個名為門描述文件只有圖像中的兩個選項...這是怎麼回事?

答案1

您在 中的模式周圍有智慧引號1.xml,請先更正這些引號(除非只是貼到此處)。

答案2

除了@gaddman(謝謝夥伴)所說的話之外......這裡有一些資訊肯定會幫助任何遇到這個問題的人。

如果您手動執行此操作,那麼大多數請求都是以這種方式發出的(我正在使用curl來完成這項工作)

捲曲 「(在這裡輸入設備 ip 和 upnp 連接埠 + 您想要的配置的控制 url,確保您可以使用諸如迷你UPNPC-2.1)" 然後這個標題--標題「SOAPAction:(您會在操作網址頂部找到很長的一部分,就像此圖片一樣)+#(您想要的操作)然後-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 測試儀用於窗戶或通用即插即用工具與其他相比,我真的更喜歡它,因為它的更新和功能大多更好。

抱歉,解釋不清楚,我對此仍然很陌生。

相關內容