PHP-доступ к Speedport w723v

0

Я хотел бы получить доступ к моему маршрутизатору (Speedport w723v) с помощью php-скрипта.

На самом деле мне нужен только cookie, который будет добавлен в URI после успешного входа в систему, например: http://speedport.ip/auth/hcti_startseite.php? Cookie = SessionID_R3, BxXQc7WSbiS

$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL,        "https://speedport.ip/");
curl_setopt( $ch, CURLOPT_REFERER,    "https://speedport.ip/");
curl_setopt( $ch, CURLOPT_COOKIEFILE, "SessionID.txt");
curl_setopt( $ch, CURLOPT_COOKIEJAR,  "SessionID.txt"); # SAME cookiefile.
curl_setopt( $ch, CURLOPT_POST,        1);
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt( $ch, CURLOPT_POSTFIELDS, "Password=PASSWORD&Username=USERNAME");
curl_setopt( $ch, CURLOPT_HEADER,      1);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
$getinfo = curl_getinfo($ch);
$errno = curl_errno($ch);
$error = curl_error($ch);
var_dump($data);
var_dump($getinfo);
var_dump($errno);
var_dump($error);
curl_close ($ch);  

Пароль и имя пользователя в порядке, результат, выброшенный скриптом выше, выглядит следующим образом:

string(145) "HTTP/1.1 302 
CACHE-CONTROL: no-cache
Content-Type: text/html
LOCATION: https://speedport.ip/pub/msgerrcode.php?cookie=
Content-Length: 0

"
array(26) {
  ["url"]=>
  string(21) "https://speedport.ip/"
  ["content_type"]=>
  string(9) "text/html"
  ["http_code"]=>
  int(302)
  ["header_size"]=>
  int(145)
  ["request_size"]=>
  int(187)
  ["filetime"]=>
  int(-1)
  ["ssl_verify_result"]=>
  int(20)
  ["redirect_count"]=>
  int(0)
  ["total_time"]=>
  float(0.53)
  ["namelookup_time"]=>
  float(0)
  ["connect_time"]=>
  float(0)
  ["pretransfer_time"]=>
  float(0.53)
  ["size_upload"]=>
  float(34)
  ["size_download"]=>
  float(0)
  ["speed_download"]=>
  float(0)
  ["speed_upload"]=>
  float(64)
  ["download_content_length"]=>
  float(0)
  ["upload_content_length"]=>
  float(34)
  ["starttransfer_time"]=>
  float(0.53)
  ["redirect_time"]=>
  float(0)
  ["redirect_url"]=>
  string(47) "https://speedport.ip/pub/msgerrcode.php?cookie="
  ["primary_ip"]=>
  string(12) "192.168.100.1"
  ["certinfo"]=>
  array(0) {
  }
  ["primary_port"]=>
  int(443)
  ["local_ip"]=>
  string(14) "192.168.100.106"
  ["local_port"]=>
  int(50900)
}
int(0)
string(0) ""

Файл cookie (SessionID.txt) остается пустым; Я пробовал все возможные пути.

Я заметил перенаправление, но понятия не имею, как продолжить.

Что я делаю не так?

Теги:
router

1 ответ

1
Лучший ответ

Пароль должен быть закодирован в base64, URI ошибочен - это в конечном итоге удалось:

$ch = curl_init();
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt( $ch, CURLOPT_URL,        "https://speedport.ip/index/login.cgi");
curl_setopt( $ch, CURLOPT_REFERER,    "https://speedport.ip/index/login.cgi");
curl_setopt( $ch, CURLOPT_COOKIESESSION, true );
curl_setopt( $ch, CURLOPT_COOKIEFILE, $filename);
curl_setopt( $ch, CURLOPT_COOKIEJAR,  $filename);
curl_setopt( $ch, CURLOPT_POST,        TRUE);
curl_setopt( $ch, CURLOPT_POSTFIELDS, "Password=".base64_encode(PASSWORD)."&Username=admin");
curl_setopt( $ch, CURLOPT_HEADER,      1);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, TRUE);
$data = curl_exec( $ch);

Примечание. Имя пользователя всегда "admin".

Теперь вы можете повторно подключать или читать данные, такие как звонящие...

Не забудьте снова выйти из системы с помощью SessionID, иначе вам нужно будет подождать несколько минут, прежде чем вы сможете войти на https://speedport.ip

curl_setopt( $ch, CURLOPT_URL, "https://speedport.ip/auth/logout.cgi?cookie=SessionID_R3,".$sid);
$data .= curl_exec( $ch);

Надеюсь, это поможет другим. В W723V Type A (Huawei) ничего не нашли в Интернете. BTW: Была очень (!) Плохая, долгая ночь с JDownloader и распространяемой вместе с ней вредоносной программой. Больше не рекомендую.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню