Почему 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"

the deviceinfo.xmlчто я получил информацию от ... иИГД.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 выглядит следующим образом: в основном это смесь действия 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>

Я даже не знал, откуда инструмент взял этот URL, который полностью отличается от URL-адресов в файле igd.xml, поэтому я поискал строки в файлах прошивки устройства и нашел файл с именемgatedesc.sklтолько с двумя вариантами, которые есть на изображении... как это и в чем проблема?

решение1

У вас в схеме есть умные кавычки 1.xml, исправьте их в первую очередь (если только это не просто от вставки сюда).

решение2

в дополнение к тому, что сказал @gaddman (спасибо, приятель)... вот некоторая информация, которая наверняка поможет любому, кто столкнется с этой проблемой.

если вы делаете это вручную, то в основном запрос выполняется следующим образом (я использую curl для этой работы)

завиток "(здесь вы вводите IP-адрес устройства и порт UPNP + URL-адрес управления нужной вам конфигурации, которую вы обязательно найдете с помощью таких инструментов, какminiupnpc-2.1)" тогда этот заголовок--header "Действие SOAP:(и длинная часть, которую вы найдете в верхней части URL-адреса действия, как на этом изображении) + # (нужное вам действие), затем-вв @файл, в который вы помещаете информацию о нужном вам действии.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"

введите описание изображения здесь

URL-адреса можно получить, введя listdevices.exe в командной строке в папке miniupnpc-2.1. 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>

Я действительно рекомендую использовать графический инструмент, если вы не имеете об этом ни малейшего представления, например Тестер UPnPдля окон илиИнструмент UPnPкоторый я действительно предпочитаю другим, потому что он обновляется и работает лучше.

извините за неясное объяснение, я все еще новичок в этом.

Связанный контент