Orange Funbox 2.0 ma przez interface webowy taki fajny guziczek, który służy to restartu połączenia internetowego... Po prześledzeniu co tam się dzieje w Operze, skrobnąłem coś takiego:

Logowanie:

  1. $useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";
  2.  
  3. $curl = curl_init('http://192.168.1.1/authenticate?username=admin&password=admin');
  4. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  5. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  6. curl_setopt($curl, CURLOPT_USERAGENT, $useragent);
  7. curl_setopt($curl, CURLOPT_POSTFIELDS,'username=admin&password=admin');
  8. curl_setopt($curl, CURLOPT_POST, 1);
  9. curl_setopt($curl, CURLOPT_COOKIESESSION, true);
  10. curl_setopt($curl, CURLOPT_COOKIEJAR, '/tmp/ipreset_cookie.jar');
  11. curl_setopt($curl, CURLOPT_COOKIEFILE, '/tmp/ipreset_cookie.txt');


To chyba działa, bo uzyskuje ssid jako set-cookie...

Restart połączenia:

  1. curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/x-sah-ws-1-call+json; charset=UTF-8','X-Context:'.$context,'X-Prototype-Version:1.7','X-Requested-With:XMLHttpRequest','Referer:http://192.168.1.1/advConfigAccessType.html'));
  2. curl_setopt($curl, CURLOPT_URL, 'http://192.168.1.1/sysbus/NeMo/Intf/data:setFirstParameter');
  3. curl_setopt($curl, CURLOPT_POST, 1);
  4. curl_setopt($curl, CURLOPT_POSTFIELDS, '{"parameters":{"name":"Enable","value":1,"flag":"ppp","traverse":"down"}}');
  5. curl_setopt($curl, CURLINFO_HEADER_OUT, true);
  6. curl_exec($curl);


I tutaj gorzej... jeśli nie zaloguję się wcześniejszym, dostaję błąd "error: access denied", czy coś w tym stylu... ale po poprawnym zalogowaniu, powyższe zwraca tylko "status: null" - dokładnie to samo co przeglądarce przez interface webowy, ale... ale to nie działa. W sensie nie następuje restart połączenia.

Ktoś mógłby mi z tym pomóc? Najlepiej, jeśli ma tego FunBoxa...