Stepe
Anmeldungsdatum: 18. Dezember 2014
Beiträge: Zähle...
|
Hi, kann mir jemand weiterhelfen: ich such ne Möglichkeit, Werte von der Statusseite auszulesen... Ich häng da schon Stundenlag dran.
das Problem ist, dass die Seite dynamisch auf dem Client mit JS(ON) generiert wird , also nicht einfach so ausgelesen werden kann. Das 'einfachste' wäre, wenn man die Funktionsaufrufe kennen würde, mit denen die Variablen befüllt werden.
So was ähnliches gabs hier schon mal: http://forum.ubuntuusers.de/topic/reconnect-script-fuer-speedport-w921v/ Gruß, Stephan
|
Stepe
(Themenstarter)
Anmeldungsdatum: 18. Dezember 2014
Beiträge: 7
|
Hi, also leider immer noch nichts gefunden...
ABER ich bin bei meiner Suche auf die "hidden Status" Seite gestoßen https://speedport.ip/hidden/hidden_index.stm Im Prinzip ist es das, was ich gesucht habe - allerdings mit dem Nachteil, dass man sich anmelden muss um auf die Seite zuzugreifen... Ich hab mir ein php-Script gebastelt um die für mich relevanten auszulesen und anzuzeigen - vielleicht kanns ja noch jemand brauchen 😉 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108 | <?php
$_PASS="<PASSWORT DES SPEEDPORTS>";
$_REFERER="https://<IP DES SPEEDPORTS>/html/login/";
$_REFEREE="https://<IP DES SPEEDPORTS>/data/Login.json";
$_USERAGENT="Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)";
$cl = curl_init();
curl_setopt($cl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cl, CURLOPT_COOKIESESSION, true);
curl_setopt($cl, CURLOPT_COOKIEJAR, "/tmp/speedport.cookie");
curl_setopt($cl, CURLOPT_COOKIEFILE, "/tmp/speedport.cookie");
curl_setopt($cl, CURLOPT_USERAGENT, $_USERAGENT);
curl_setopt($cl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($cl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($cl,CURLOPT_NOBODY,false);
curl_setopt($cl, CURLOPT_REFERER, $_REFERER);
curl_setopt($cl, CURLOPT_URL, $_REFEREE);
curl_setopt($cl, CURLOPT_POST, true);
curl_setopt($cl, CURLOPT_POSTFIELDS, "password=$_PASS&showpw=0");
curl_exec($cl);
//echo "Info1: ".curl_getinfo($cl,CURLINFO_HTTP_CODE)."<br>";
//echo "Error1: ".curl_error($cl)."<br>";
curl_setopt($cl, CURLOPT_POST,false);
$_REFERER=$_REFEREE;
$_REFEREE="https://<IP DES SPEEDPORTS>/hidden/status_main.stm";
curl_setopt($cl, CURLOPT_REFERER, $_REFERER);
curl_setopt($cl, CURLOPT_URL, $_REFEREE);
$_webpage = curl_exec($cl);
//echo "Info2: ".curl_getinfo($cl,CURLINFO_HTTP_CODE)."<br>";
//echo "Error2: ".curl_error($cl)."<br>";
if($_webpage){
//Array mit den relevanten Variablenbezeichnungen
$vars = array("bWanConnected","var download_rate","var upload_rate","var max_download_rate","var max_upload_rate","var download_noise_margin","var upload_noise_margin","wan_ip","wan_subnet_mask","wan_gateway","primary_dns","secondary_dns");
//Array mit Anzeigetexten
$text = array("Verbindung: ","Down: ","Up: ","Max Down: ","Max up: ","Noise margin down: ","Noise margin up: ","WAN-IP: ","WAN-Subnetmaske: ","WAN-Gateway: ","Primary-DNS: ","Secondary-DNS: ");
$rows = explode("\n", $_webpage);
$val="";
$i=0;
?>
<!DOCTYPE html PUBLIC "../../xhtml1-transitional-translate.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:i18n="../">
<head>
<title>Speedport Verbindungsstatus</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="author" content="Stepe">
</head>
<body>
<?php
foreach($vars as $var)
{
$pattern = '/^'.$var.'/';
$matches = preg_grep($pattern, $rows);
$matches = array_values($matches); //Array neu indizieren
if($matches[0]){
$val=substr($matches[0],strpos($matches[0],"=")+1,strlen($matches[0])-strpos($matches[0],"=")-2);
$val=str_replace("\"", "", $val);
if($i > 0 & $i < 5)
{
echo $text[$i].$val." kbps<br>";
}
else
{
if($i==0){
$val= $val=="1" ? "verbunden" : "getrennt";
}
echo $text[$i].$val."<br>";
}
}
$i++;
}
?>
</body>
</html>
<?php
}
$_REFEREE="https://<IP DES SPEEDPORTS>/data/Login.json";
curl_setopt($cl, CURLOPT_POSTFIELDS, "logout=byby");
curl_setopt($cl, CURLOPT_POST, true);
curl_setopt($cl, CURLOPT_URL, $_REFEREE);
curl_exec($cl);
//echo "Info3: ".curl_getinfo($cl,CURLINFO_HTTP_CODE)."<br>";
//echo "Error3: ".curl_error($cl)."<br>";
curl_close($cl);
?>
|
|
elektronenblitz63
Anmeldungsdatum: 16. Januar 2007
Beiträge: 29307
Wohnort: NRW
|
Hallo, dies wäre doch etwas für ein Howto im Wiki. → Experiment - Howtos im Wiki-Bereich Sollte das Projekt eingestellt werden, so wird der Artikel archiviert, geht also nicht gänzlich verloren. Hier im Forenbereich geht das recht schnell völlig unter.
|
Stepe
(Themenstarter)
Anmeldungsdatum: 18. Dezember 2014
Beiträge: 7
|
O.k., habs mal reingestellt 😉 Gruß,
Stephan
|