Добрый день!
Имеется:
- серый IP провайдера (не дают белый)
- роутер ZyXEL Keenetic Extra, который позволяет к себе подключиться через интернет используя "облако Keenetic".
- сайт, хостинг на PHP
При входе в облако я вижу IP адрес моего роутера и могу уже по IP подключаться к удаленному рабочему столу.
Требуется нескольким пользователям знать этот IP без входа в облако ZyXEL Keenetic Extra.
Есть сайт и сразу была идея вывести на этом сайте информацию IP адрес моего роутера.
Итак, для начала пытаюсь всё это сделать на компе, который находится в сети данного роутера.
Смотрю при авторизации, что происходит и понимаю, что все данные получаю из отправленных запросов в
192.168.1.1/cixml = '<packet ref="/"><request id="1" ref="ndm[page]/ndm[update:debug_led]"><command name="show system debug"></command></request><request id="2" ref="former.status[ready]/former.status[load]"><command name="show interface"></command></request><request id="3" ref="former.status[ready]/former.status[load]"><command name="show ip name-server"></command></request><request id="4" ref="former.status[ready]/former.status[load]"><config name="ip route"><default/></config></request><request id="5" ref="former.status[ready]/former.status[load]"><command name="show system"></command></request><request id="6" ref="former.status[ready]/former.status[load]"><command name="show version"></command></request><request id="7" ref="former.status[ready]/former.status[load]"><command name="show identification"></command></request><request id="8" ref="former.status[ready]/former.status[load]"><command name="show clock date"></command></request><request id="9" ref="former.status[ready]/former.status[load]"><command name="show usb"></command></request><request id="10" ref="former.status[ready]/former.status[load]"><command name="show printers"></command></request><request id="11" ref="former.status[ready]/former.status[load]"><command name="show ndns"></command></request><request id="12" ref="former.status[ready]/former.status[load]"><command name="show kabinet status"></command></request><request id="13" ref="former.status[ready]/former.status[load]"><command name="show system mode"></command></request></packet>';
$data = array('Content-Type: text/xml');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $host);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_HTTPHEADER, $data);
$out = curl_exec($ch);
print "error:" . curl_error($ch) . "<br />";
print "output:" . var_dump($out) . "<br /><br />";
curl_close($ch);
при выполнения скрипта выводи на экран
error:
string(611) "HTTP/1.1 401 Unauthorized Server: Web server Date: Tue, 18 Apr 2017 06:28:25 GMT Content-Type: text/html Content-Length: 193 Connection: keep-alive WWW-Authenticate: Digest realm="ZyXEL Keenetic Extra", nonce="NbP1WHBo13hC4GbqDbKHOHSoJkTLDAjS", qop="auth" HTTP/1.1 100 Continue HTTP/1.1 405 Method Not Allowed Server: Web server Date: Tue, 18 Apr 2017 06:28:26 GMT Transfer-Encoding: chunked Connection: keep-alive Authentication-Info: nextnonce="NbP1WHBo13hC4GbqDbKHOHSoJkTLDAjS", qop=auth, rspauth="baef76133ceb496afa8272cd0f13f72a", cnonce="b6b6b9f9e565bfd2c4dc978efd589b42", nc=00000001 " output:
Подскажите, что делаю не так?
Заранее спасибо