Hauptmenü

HTTPMOD mit Login

Begonnen von KaiHuHu, 23 August 2018, 19:37:21

Vorheriges Thema - Nächstes Thema

KaiHuHu

Hallo

bin auf der Suche nach einer Möglichkeit die WAN-Adresse und später noch weitere Informationen von meinem Router abzurufen.

Router:TP-Link AC750 Wi-Fi Travel Router Model No. TL-WR902AC
Ich komme beim Login nicht weiter!

könnt ihr mir helfen?


<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">

<!--
<link rel="stylesheet" href="../css/login.css" type="text/css" />
<link rel="stylesheet" href="../img/login/login.css" type="text/css" />
-->
<link rel="Shortcut Icon" href="http://tplinkwifi.net/img/login/favicon.ico" type="image/jpeg">
<style type="text/css">
body{
    font-family:Arial, sans-serief;
    background-color:#FFFFFF;
    margin:0px;
    padding:0px;
}
div.loginBox
{
    display: block;
    position:relative;
    margin-top:10%;
    text-align:center;
}
.noteDiv{
    color:gray;
    font-family:Arial;
    width:395px;
    text-align:left;
    margin:0px auto;
    font-size:14px;
}
#note{
    /*display:inline-block;*/
    vertical-align:top;
    _display:inline;
    _zoom:1;
    width:50px;
    font-weight:bold;
}
#tip{
    display:inline-block;
    vertical-align:top;
    _display:inline;
    _zoom:1;
    width:340px;
    font-weight:bold;
}
div.panelThre{
    margin-top:10px;
}
div.picDiv{
    width:395px;
    height:276px;
    /*background:url(../login/loginbg.png);*/
    position:relative;
}
input.pcPassword{
    width:300px;
    height:50px;
    line-height:50px;
    padding-left:20px;
}
div.PCBtnDiv{
    position:relative;
    margin-top:20px;
}
img.logoPic{
    width:100%;
}
#copyright{
    -webkit-text-size-adjust:none;
    font-size:8px;
    color:#6a6969;
    font-family:"Verdana";
    font-weight:normal;
    margin-top:40px;
    display:inline-block;
}
.topLogo{
    background-color: #4ACBD6;
    height:96px;
    overflow: hidden;
}
tr{
    vertical-align: top;
}
.topLogo td a img{
    margin:27px 0 0 25px;
}
.topLogo td.last-td img{
    float: right;
    margin-right: 14px;
    opacity: 0.3;
    filter:alpha(opacity=30);
}
ul{
    padding:60px 0px 0px 0px;
    margin:0px;
    list-style:none;
}
ul li{
    height:32px;
    width:250px;
    text-align: left;
}
li.unLi{
    /*background:url(../login/loginUser.png);*/
    background:url(../img/login/input-box.png);

}
li.pwLi{
    /*background:url(../login/loginPwd.png);*/
    background:url(../img/login/input-box.png);
}
li.blank{
    height:8px;
}
input.text{
    border:0px;
    height:32px;
    line-height:32px;
    width:175px;
    padding:0px;
    /*margin-left: 39px;*/
    font-size:14px;
    color:#A7A9AC;
    font-family:"Arial","Verdana";
    font-weight:normal;
    background-color: transparent;
    vertical-align: top;
}
input.text:focus{
    outline: none;
}
label.loginBtn{
    height:32px;
    display:inline-block;
    width:250px;
    margin-top:8px;
    line-height: 32px;
    color: #FFFFFF;
    font-size:18px;
    font-family: Arial;
    background:url(../img/login/loginButton.png);
    cursor:pointer;
}

li img{
    line-height: 40px;
    margin: 9px 6px 9px 9px;
}

iframe#top{
    width:100%;
    height:96px;
    border: none;
    display: block;
}

html{
    overflow: hidden;
}
table,tr,td{
    padding: 0;
}
td {
    font-family:"Times New Roman", "ËÎÌå";
    font-size: 12px;
}
form {
    font-family:"Times New Roman", "ËÎÌå";
    font-size: 12px;
}
/*
body {
    font-family:"Arial Black", "ºÚÌå";
    font-size: 16px;
    background: #4ACBD6
}
*/
.style1 {
    font-family:Arial;
    color: #FFFFFF;
    font-size: 18px;
    padding-right: 50;
    text-align: left;
    font-weight: bold;
    white-space: nowrap;
}
.style2 {
    font-size: 14px;
    font-family:Arial;
    font-weight: bold;
    padding-right: 50;
    text-align: left;
    white-space: nowrap;
    color: #FFFFFF;
}

tr{
    vertical-align: top;
}
#first-td{
    width:234px;
}
#first-td img {
    margin:27px 0 0 25px;
    cursor: pointer;
}
#second-td {
    padding-top: 25px;
}
#third-td img {
    float:right;
    opacity: 0.3;
    filter\0: alpha(opacity=30);
    margin-right: 14px;
}
input[type="text"]::-ms-clear,
input[type='password']::-ms-reveal{
    display:none;
}
</style>
<script src="TL-WR902AC-Dateien/oid_str.js" type="text/javascript"></script>
<script src="TL-WR902AC-Dateien/str.js" type="text/javascript"></script>
<script src="TL-WR902AC-Dateien/err.js" type="text/javascript"></script>
<script src="TL-WR902AC-Dateien/language.js" type="text/javascript"></script>
<script src="TL-WR902AC-Dateien/lib.js" type="text/javascript"></script><title>TL-WR902AC</title>
<script type="text/javascript">
var lang = "en_US";
if($.country)
{
//console.log("lang = $.country: ", $.country);
lang = $.country;
}
var url = window.location.href;
if (url.indexOf("tplinklogin.net") >= 0)
{
    url = url.replace("tplinklogin.net", "tplinkwifi.net");
    window.location = url;
}

var isLocked = false;

deleteCookie("Authorization");
if (window.parent != window)
{
var refresh = function(domain, port, frame, page) {
if ($.local) location.reload(true);
else {
var ret = window.parent.location.href.match(/(https?):\/\/([^:\/]+)(:\d+)?\/?([^?]*)/);
window.parent.location.href = ret[1] + "://" + (domain ? domain : ret[2]) + (port ? ":" + port : (ret[3] ? ret[3] : "")) + "/" + (frame ? frame : (ret[4] ? ret[4] : "")) + (page ? "#__" + page.match(/\w+\.htm$/) : "");
}
}
refresh();
}

function Base64Encoding(input)
{
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;
input = utf8_encode(input);
while (i < input.length)
{
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;

if (isNaN(chr2))
{
enc3 = enc4 = 64;
}
else if (isNaN(chr3))
{
enc4 = 64;
}
output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4);
}
return output;
}

function utf8_encode (string)
{
string = string.replace(/\r\n/g,"\n");
var utftext = "";

for (var n = 0; n < string.length; n++)
{
var c = string.charCodeAt(n);
if (c < 128)
{
utftext += String.fromCharCode(c);
}
else if((c > 127) && (c < 2048))
{
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
else
{
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
}

function PCWin(event)
{
if (event.keyCode == 13)
{
PCSubWin();
}
}

function PCSubWin()
{
if (isLocked == true)
{
return ;
}

var auth;
var password = $.id("pcPassword").value;
var userName = $.id("userName").value;

/* if (forbidAdminLogin == 1){
$.id("note").innerHTML = "NOTE:";
$.id("tip").innerHTML = "The router allows only one administrator to login at the same time, please try again later.";
return;
}*/

auth = "Basic "+Base64Encoding(userName+":"+password);
document.cookie = "Authorization=" + auth;
window.location.reload();
}

function deleteCookie(name)
{
    var LargeExpDate = new Date ();
    document.cookie = name + "=; expires=" +LargeExpDate.toGMTString();
}
/*
function $(id)
{
return document.getElementById(id);
}
*/
function lockWeb(bLock)
{
$.id("userName").disabled = bLock;
$.id("pcPassword").disabled = bLock;
$.id("pcPassword").blur();
$.id("userName").blur();
}

function resize()
{
bodyObj = document.body;
bodyObj.style["width"] = (document.documentElement.clientWidth < 1000 ? 1000 : document.documentElement.clientWidth) + "px";
}

function pageLoad()
{
resize();
window.onresize = resize;
var tip = $.id("tip"), tipStr="", note = $.id("note");
var unLi = $.id("unLi");
var pwLi = $.id("pwLi");
var userName = $.id("userName");
var pcPassword = $.id("pcPassword");

deleteCookie("Authorization");
/*
pcPassword.onfocus = function()
{
pwLi.style.background = "url(../img/login/pwselect.png)";
};

pcPassword.onblur = function()
{
pwLi.style.background = "url(../img/login/pwunselect.png)";
};
   
userName.onfocus = function()
{
unLi.style.background = "url(../img/login/idselect.png)";
};
   
userName.onblur = function()
{
unLi.style.background = "url(../img/login/idunselect.png)";
};
*/
try {
if (localString)
{
$.id("mnum").innerHTML = localString[lang].MODEL_NO + modelName;
}
else
{
$.id("mnum").innerHTML = "Model No. " + modelName;
}
if(modelDesc)
{
$.id("mname").innerHTML = modelDesc;
}
}catch(e) {}

if (forbidAdminLogin == 1)
{
if (localString)
{
$.id("note").innerHTML = localString[lang].NOTE;
$.id("tip").innerHTML = localString[lang].TIP_CONFLICT;
}
else
{
$.id("note").innerHTML = "NOTE:";
$.id("tip").innerHTML = "The router allows only one administrator to login at the same time, please try again later.";
}

forbidAdminLogin = 0;
authTimes = 0;
if (/*usernameIsAdmin*/0)
{
userName.value = "admin";
pcPassword.focus();
pcPassword.select();
}
else{
userName.focus();
userName.select();
}
lockWeb(true);
return;
}

if (authTimes > 0)
{
if (localString)
{
$.id("note").innerHTML = localString[lang].NOTE;
$.id("tip").innerHTML = localString[lang].TIP_ERROR;
}
else{
$.id("note").innerHTML = "NOTE:";
$.id("tip").innerHTML = "The username or password is incorrect, please try again.";
}
}

if (authTimes >= 10)
{
isLocked = true;
lockWeb(true);
count = 7200 - forbidTime;
if (localString)
{
$.id("note").innerHTML = localString[lang].NOTE;
tipStr = localString[lang].TIP_EXCE1;
$.id("tip").innerHTML = tipStr + count + localString[lang].TIP_EXCE2;;
}
else
{
$.id("note").innerHTML = "NOTE:";
tipStr = "You have exceeded ten attempts. Please try again in ";
$.id("tip").innerHTML = tipStr + count + "s.";
}

window.setTimeout(function()
{
if (count < 1)
{
$.id("note").innerHTML = "";
$.id("tip").innerHTML = "";
isLocked = false;
lockWeb(false);
userName.focus();
deleteCookie("Authorization");
window.location.reload();
return ;
}
count--;
if (localString)
{
$.id("tip").innerHTML = tipStr + count + localString[lang].TIP_EXCE2;
}
else{
$.id("tip").innerHTML = tipStr + count + "s.";
}
window.setTimeout(arguments.callee, 1000);
}, 1000);
}
else
{
userName.focus();
}
if (/*usernameIsAdmin*/0)
{
userName.value = "admin";
pcPassword.focus();
pcPassword.select();
}
else{
userName.focus();
userName.select();
}
}
</script>
</head>

<body onkeypress="PCWin(event)" onload="pageLoad()" style="width: 1440px;">
<!--
<div class="nd" style="height: 0; background: url(../img/login/1.jpg);"></div>
-->
<div class="topLogo">
<!--
<a href="http://www.tp-link.com"><img id="logo" src="../img/login/top1_1.jpg" style="float: left;" border="0" /></a>
<div id="mod" style="height: 87px; margin: 0; text-align: right; overflow: hidden; background: url(../img/login/top1_2.jpg) no-repeat right;" >
<p id="mname" style="font-size: 16px; font-weight: bold; color: #fff; margin: 37px 24px 0 0; padding: 0;"></p>
<p id="mnum" style="font-size: 12px; font-weight: bold; color: #fff; margin: 2px 24px 0 0; padding: 0;"></p>
</div>
<img id="bhr" src="../img/login/top2.jpg" style="height: 3px; width: 100%; display: block;" />
-->
<table width="100%" cellspacing="0">
        <tbody><tr>
            <td>
                <table width="100%" cellspacing="0" border="0">
                    <tbody><tr>
                        <td id="first-td">
                            <a onclick="return NewW();" onmouseover="return ShowUrl();" onmouseout="return EraseUrl();">
                                <img src="TL-WR902AC-Dateien/logo.txt">
                            </a>
                        </td>
                        <td id="second-td">
                            <table>
                                <tbody><tr>
                                    <td id="mname" class="style1">AC750 Wi-Fi Travel Router</td>
                                </tr>
                                <tr>
                                    <td id="mnum" class="style2">Model No. TL-WR902AC</td>
                                </tr>
                            </tbody></table>
                        </td>
<td id="third-td">
<img src="TL-WR902AC-Dateien/top-right.txt">
</td>
                    </tr>
                </tbody></table>
            </td>
        </tr>
        <!--<tr>-->
            <!--<td>-->
                <!--<IMG height=3 src="../images/top2.jpg" width="100%" align=top border=0>-->
            <!--</td>-->
        <!--</tr>-->
    </tbody></table>
</div>
<div class="loginBox">
<div class="noteDiv">
<span id="note"></span>
<span id="tip"></span>
</div>
<div class="panelThre" align="center">
<div class="picDiv" align="center">
<ul>
<li id="unLi" class="unLi"><img src="TL-WR902AC-Dateien/username.txt"><input class="text" id="userName" maxlength="15" placeholder="Username" autocomplete="off" type="text"></li>
<li class="blank"></li>
<li id="pwLi" class="pwLi"><img src="TL-WR902AC-Dateien/password.txt"><input class="text" id="pcPassword" maxlength="15" placeholder="Password" autocomplete="off" type="password"></li>
</ul>
<!--<button id="loginBtn" class="loginBtn" onclick="PCSubWin()"></button>-->
<label id="loginBtn" class="loginBtn" onclick="PCSubWin()"><span id="loginBtnText">Log In</span></label>
<!--
<div>
<label id="copyright">Copyright &copy; 2016 TP-LINK Technologies Co., Ltd. All rights reserved. </label>
</div>
-->
</div>
</div>
</div>
<iframe id="qrFrame" name="qrFrame" marginwidth="0" marginheight="0" src="TL-WR902AC-Dateien/qr.html" noresize="" scrolling="no" framespacing="0" style="position: absolute; bottom: 0px; width: 100%; height: 30px;" frameborder="0">
</iframe>

<script type="text/javascript">
if (localString)
{
document.getElementById("userName").placeholder = localString[lang].USERNAME;
document.getElementById("pcPassword").placeholder = localString[lang].PASSWORD;
document.getElementById("loginBtnText").innerHTML = localString[lang].LOGIN;
}
</script>

<script type="text/javascript"> var authTimes=0; var forbidTime=0; var modelName="TL-WR902AC"; var modelDesc="AC750 Wi-Fi Travel Router"; var forbidAdminLogin=0; var forbidUserLogin=0; var usernameIsAdmin=0;</script></body></html>



define Router HTTPMOD http://tplinkwifi.net/ 60

jetzt muss ich irgendwie Benutzername und Passwort übergeben.

Benutzername:

<input class="text" id="userName" maxlength="15" placeholder="Username" autocomplete="off" type="text">

und Passwort:
<input class="text" id="pcPassword" maxlength="15" placeholder="Password" autocomplete="off" type="password">


log:

</body>
<script type="text/javascript">
if (localString)
{
document.getElementById("userName").placeholder = localString[lang].USERNAME;
document.getElementById("pcPassword").placeholder = localString[lang].PASSWORD;
document.getElementById("loginBtnText").innerHTML = localString[lang].LOGIN;
}
</script>
</html>
<script type="text/javascript"> var authTimes=0; var forbidTime=0; var modelName="TL-WR902AC"; var modelDesc="AC750 Wi-Fi Travel Router"; var forbidAdminLogin=0; var forbidUserLogin=0; var usernameIsAdmin=0;</script>
2018.08.23 19:49:29 5: Router: ExtractSid called, context reading, num
2018.08.23 19:49:29 4: Router: CheckAuth decided no authentication required
2018.08.23 19:49:29 5: Router: Read starts parsing response to update with defined readings:
2018.08.23 19:49:29 3: Router: Read response to update didn't match any Reading
2018.08.23 19:49:29 5: Router: HandleSendQueue called, qlen = 0
FHEM 5.8 Pi3

ch.eick

Moin.

Such mal im Forum nach ,,httpmod Vallox" da bin ich auch an einem Login Problem.
Grundlegend kannst Du dort Attribute für httpmod finden, die dir ein Beispiel geben.

Stell bitte auch ein ,,List Router" ein, damit man Deine Konfiguration sehen kann.

Auch wenn es etwas komplex erscheint hilft Dir das Tool Burp beim tracen weiter.


Gruß
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

KaiHuHu

list Router:

Internals:
   BUSY       0
   CFGFN     
   CHANGED   
   DEF        http://tplinkwifi.net/ 60
   Interval   60
   LASTSEND   1535230039.25221
   MainURL    http://tplinkwifi.net/
   ModuleVersion 3.5.1 - 5.7.2018
   NAME       Router
   NR         151
   STATE      ???
   TRIGGERTIME 1535230099.25064
   TRIGGERTIME_FMT 2018-08-25 22:48:19
   TYPE       HTTPMOD
   addr       http://tplinkwifi.net:80
   auth       0
   buf       
   code       200
   compress   1
   conn       
   data       
   displayurl http://tplinkwifi.net/
   header     
   host       tplinkwifi.net
   httpheader HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 14884
Connection: keep-alive
   httpversion 1.0
   hu_blocking 0
   hu_filecount 1
   hu_port    80
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /
   protocol   http
   redirects  0
   timeout    2
   url        http://tplinkwifi.net/
   value      0
   QUEUE:
   READINGS:
   REQUEST:
     data       
     header     
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://tplinkwifi.net/
     value      0
   sslargs:
Attributes:
   verbose    5
FHEM 5.8 Pi3