我正在尝试找到一种方法来使用 UPnP 添加端口转发,我确实打开了 upnp,我可以访问http://192.168.1.254:52869/gateconnSCPD.xml
upnp 服务开启的菜单,但我无法获得米兰达实际上使用发现功能找到 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:”是必需的,并且应包含数据字段的长度,否则会失败。