如何使用 curl 发送 upnp 请求

如何使用 curl 发送 upnp 请求

我正在尝试找到一种方法来使用 UPnP 添加端口转发,我确实打开了 upnp,我可以访问http://192.168.1.254:52869/gateconnSCPD.xmlupnp 服务开启的菜单,但我无法获得米兰达实际上使用发现功能找到 upnp 服务器,似乎该部分实际上不起作用。我确实在网上找到了请求的示例,但也没有起作用

curl 'http://192.168.1.254:52869/Public_UPNP_C3' \
  -X 'POST' \
  -H 'Content-Type: text/xml; charset="utf-8"' \
  -H 'Connection: close' \
  -H 'SOAPAction: "urn:schemas-upnp-org:service:WANIPConnection:1#AddPortMapping"' \
  -d '<?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:AddPortMapping xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1">
  <NewRemoteHost></NewRemoteHost>
  <NewExternalPort>27015</NewExternalPort>
  <NewProtocol>TCP</NewProtocol>
  <NewInternalPort>27015</NewInternalPort>
  <NewInternalClient>192.168.1.2</NewInternalClient>
  <NewEnabled>1</NewEnabled>
  <NewPortMappingDescription>node:nat:upnp</NewPortMappingDescription>
  <NewLeaseDuration>10</NewLeaseDuration>
</u:AddPortMapping>
</s:Body>
</s:Envelope>'

是否有可以通过 upnp 打开端口转发的“简单”请求?

答案1

我知道这是一个非常老的问题,但由于我最近正在玩这个问题,所以我认为我应该在这里为其他人发布答案。

标题字段“Content-Length:”是必需的,并且应包含数据字段的长度,否则会失败。

相关内容