3

我想通过 PHP 重新连接我的路由器。控制台命令如下:

curl "http://192.168.178.1:49000/upnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction: urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination" -d ""

我如何在 PHP 中使用 curl 来做到这一点?

提前致谢

编辑:

找到了解决方案:

$sPostfields ="<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\r\n"
        ."<s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">\r\n"
        ."<s:Body>\r\n"
        ."<u:ForceTermination xmlns:u=\"urn:schemas-upnp-org:service:WANIPConnection:1\" />\r\n"
        ."</s:Body>\r\n"
        ."</s:Envelope>\r\n";
$soap_do = curl_init();

$header = array(
        "Content-Type: text/xml",
        "Cache-Control: no-cache",
        "Pragma: no-cache",
        "SOAPAction: \"urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination\"",
        "Content-length: ".strlen($sPostfields),
);

curl_setopt($soap_do, CURLOPT_URL,            "http://192.168.178.1:49000/upnp/control/WANIPConn1" );
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true );
curl_setopt($soap_do, CURLOPT_POST,           true );
curl_setopt($soap_do, CURLOPT_POSTFIELDS,     $sPostfields);
curl_setopt($soap_do, CURLOPT_HTTPHEADER,     $header );

$output = curl_exec($soap_do);
$aInfo = curl_getinfo($soap_do);
curl_close($soap_do);
print_r( $output );
print_r( $aInfo );
exit();
4

0 回答 0