PortalMicroTik
This commit is contained in:
parent
78880c18ad
commit
d195b4d637
3032
backupPfSense/config-firewall.redinc.org-20190215111652.xml
Normal file
3032
backupPfSense/config-firewall.redinc.org-20190215111652.xml
Normal file
File diff suppressed because one or more lines are too long
2802
backupPfSense/config-firewall.redinc.org-20190216152657.xml
Normal file
2802
backupPfSense/config-firewall.redinc.org-20190216152657.xml
Normal file
File diff suppressed because one or more lines are too long
49
captivemicrotik/hotspot/alogin.html
Normal file
49
captivemicrotik/hotspot/alogin.html
Normal file
@ -0,0 +1,49 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>mikrotik hotspot > redirect</title>
|
||||
<meta http-equiv="refresh" content="2; url=$(link-redirect)">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta http-equiv="pragma" content="no-cache">
|
||||
<meta http-equiv="expires" content="-1">
|
||||
<style type="text/css">
|
||||
<!--
|
||||
textarea,input,select {
|
||||
background-color: #FDFBFB;
|
||||
border: 1px #BBBBBB solid;
|
||||
padding: 2px;
|
||||
margin: 1px;
|
||||
font-size: 14px;
|
||||
color: #808080;
|
||||
}
|
||||
|
||||
body{ color: #737373; font-size: 12px; font-family: verdana; }
|
||||
|
||||
a, a:link, a:visited, a:active { color: #AAAAAA; text-decoration: none; font-size: 12px; }
|
||||
a:hover { border-bottom: 1px dotted #c1c1c1; color: #AAAAAA; }
|
||||
img {border: none;}
|
||||
td { font-size: 12px; color: #7A7A7A; }
|
||||
|
||||
-->
|
||||
</style>
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
function startClock() {
|
||||
$(if popup == 'true')
|
||||
open('$(link-status)', 'hotspot_status', 'toolbar=0,location=0,directories=0,status=0,menubars=0,resizable=1,width=290,height=200');
|
||||
$(endif)
|
||||
location.href = unescape('$(link-redirect-esc)');
|
||||
}
|
||||
//-->
|
||||
</script>
|
||||
</head>
|
||||
<body onLoad="startClock()">
|
||||
<table width="100%" height="100%">
|
||||
<tr>
|
||||
<td align="center" valign="middle">
|
||||
You are logged in
|
||||
<br><br>
|
||||
If nothing happens, click <a href="$(link-redirect)">here</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
40
captivemicrotik/hotspot/error.html
Normal file
40
captivemicrotik/hotspot/error.html
Normal file
@ -0,0 +1,40 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>mikrotik hotspot > error</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta http-equiv="pragma" content="no-cache">
|
||||
<meta http-equiv="expires" content="-1">
|
||||
<style type="text/css">
|
||||
<!--
|
||||
textarea,input,select {
|
||||
background-color: #FDFBFB;
|
||||
border: 1px #BBBBBB solid;
|
||||
padding: 2px;
|
||||
margin: 1px;
|
||||
font-size: 14px;
|
||||
color: #808080;
|
||||
}
|
||||
|
||||
body{ color: #737373; font-size: 12px; font-family: verdana; }
|
||||
|
||||
a, a:link, a:visited, a:active { color: #AAAAAA; text-decoration: none; font-size: 12px; }
|
||||
a:hover { border-bottom: 1px dotted #c1c1c1; color: #AAAAAA; }
|
||||
img {border: none;}
|
||||
td { font-size: 12px; color: #7A7A7A; }
|
||||
|
||||
-->
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table width="100%" height="100%">
|
||||
|
||||
<tr>
|
||||
<td align="center" valign="middle">
|
||||
Hotspot ERROR: $(error)<br>
|
||||
<br>
|
||||
Login page: <a href="$(link-login)">$(link-login)</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
104
captivemicrotik/hotspot/errors.txt
Normal file
104
captivemicrotik/hotspot/errors.txt
Normal file
@ -0,0 +1,104 @@
|
||||
# This file contains error messages which are shown to user, when http/https
|
||||
# login is used.
|
||||
# These messages can be changed to make user interface more friendly, including
|
||||
# translations to different languages.
|
||||
#
|
||||
# Various variables can be used here as well. Most frequently used ones are:
|
||||
# $(error-orig) - original error message from hotspot
|
||||
# $(ip) - ip address of a client
|
||||
# $(username) - username of client trying to log in
|
||||
|
||||
# internal-error
|
||||
# It should never happen. If it will, error page will be shown
|
||||
# displaying this error message (error-orig will describe what has happened)
|
||||
|
||||
internal-error = internal error ($(error-orig))
|
||||
|
||||
# config-error
|
||||
# Should never happen if hotspot is configured properly.
|
||||
|
||||
config-error = configuration error ($(error-orig))
|
||||
|
||||
# not-logged-in
|
||||
# Will happen, if status or logout page is requested by user,
|
||||
# which actually is not logged in
|
||||
|
||||
not-logged-in = you are not logged in (ip $(ip))
|
||||
|
||||
# ippool-empty
|
||||
# IP address for user is to be assigned from ip pool, but there are no more
|
||||
# addresses in that pool
|
||||
|
||||
ippool-empty = cannot assign ip address - no more free addresses from pool
|
||||
|
||||
# shutting-down
|
||||
# When shutdown is executed, new clients are not accepted
|
||||
|
||||
shutting-down = hotspot service is shutting down
|
||||
|
||||
# user-session-limit
|
||||
# If user profile has limit of shared-users, then this error will be shown
|
||||
# after reaching this limit
|
||||
|
||||
user-session-limit = no more sessions are allowed for user $(username)
|
||||
|
||||
# license-session-limit
|
||||
# Depending on licence number of active hotspot clients is limited to
|
||||
# one or another amount. If this limit is reached, following error is displayed.
|
||||
|
||||
license-session-limit = session limit reached ($(error-orig))
|
||||
|
||||
# wrong-mac-username
|
||||
# If username looks like MAC address (12:34:56:78:9a:bc), but is not
|
||||
# a MAC address of this client, login is rejected
|
||||
|
||||
wrong-mac-username = invalid username ($(username)): this MAC address is not yours
|
||||
|
||||
# chap-missing
|
||||
# If http-chap login method is used, but hotspot program does not receive
|
||||
# back encrypted password, this error message is shown.
|
||||
# Possible reasons of failure:
|
||||
# - JavaScript is not enabled in web browser;
|
||||
# - login.html page is not valid;
|
||||
# - challenge value has expired on server (more than 1h of inactivity);
|
||||
# - http-chap login method is recently removed;
|
||||
# If JavaScript is enabled and login.html page is valid,
|
||||
# then retrying to login usually fixes this problem.
|
||||
|
||||
chap-missing = web browser did not send challenge response (try again, enable JavaScript)
|
||||
|
||||
# invalid-username
|
||||
# Most general case of invalid username or password. If RADIUS server
|
||||
# has sent an error string with Access-Reject message, then it will
|
||||
# override this setting.
|
||||
|
||||
invalid-username = invalid username or password
|
||||
|
||||
# invalid-mac
|
||||
# Local users (on hotspot server) can be bound to some MAC address. If login
|
||||
# from different MAC is tried, this error message will be shown.
|
||||
|
||||
invalid-mac = user $(username) is not allowed to log in from this MAC address
|
||||
|
||||
# uptime-limit, traffic-limit
|
||||
# For local hotspot users in case if limits are reached
|
||||
|
||||
uptime-limit = user $(username) has reached uptime limit
|
||||
traffic-limit = user $(username) has reached traffic limit
|
||||
|
||||
# radius-timeout
|
||||
# User is authenticated by RADIUS server, but no response is received from it,
|
||||
# following error will be shown.
|
||||
|
||||
radius-timeout = RADIUS server is not responding
|
||||
|
||||
# auth-in-progress
|
||||
# Authorization in progress. Client already has issued an authorization request
|
||||
# which is not yet complete.
|
||||
|
||||
auth-in-progress = already authorizing, retry later
|
||||
|
||||
# radius-reply
|
||||
# Radius server returned some custom error message
|
||||
|
||||
radius-reply = $(error-orig)
|
BIN
captivemicrotik/hotspot/favicon.ico
Normal file
BIN
captivemicrotik/hotspot/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 903 B |
BIN
captivemicrotik/hotspot/img/logobottom.png
Normal file
BIN
captivemicrotik/hotspot/img/logobottom.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.8 KiB |
97
captivemicrotik/hotspot/login.html
Normal file
97
captivemicrotik/hotspot/login.html
Normal file
@ -0,0 +1,97 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>internet hotspot > login</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<meta http-equiv="pragma" content="no-cache" />
|
||||
<meta http-equiv="expires" content="-1" />
|
||||
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;"/>
|
||||
<style type="text/css">
|
||||
body {color: #737373; font-size: 10px; font-family: verdana;}
|
||||
|
||||
textarea,input,select {
|
||||
background-color: #FDFBFB;
|
||||
border: 1px solid #BBBBBB;
|
||||
padding: 2px;
|
||||
margin: 1px;
|
||||
font-size: 14px;
|
||||
color: #808080;
|
||||
}
|
||||
|
||||
a, a:link, a:visited, a:active { color: #AAAAAA; text-decoration: none; font-size: 10px; }
|
||||
a:hover { border-bottom: 1px dotted #c1c1c1; color: #AAAAAA; }
|
||||
img {border: none;}
|
||||
td { font-size: 14px; color: #7A7A7A; }
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
$(if chap-id)
|
||||
<form name="sendin" action="$(link-login-only)" method="post">
|
||||
<input type="hidden" name="username" />
|
||||
<input type="hidden" name="password" />
|
||||
<input type="hidden" name="dst" value="$(link-orig)" />
|
||||
<input type="hidden" name="popup" value="true" />
|
||||
</form>
|
||||
|
||||
<script type="text/javascript" src="/md5.js"></script>
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
function doLogin() {
|
||||
document.sendin.username.value = document.login.username.value;
|
||||
document.sendin.password.value = hexMD5('$(chap-id)' + document.login.password.value + '$(chap-challenge)');
|
||||
document.sendin.submit();
|
||||
return false;
|
||||
}
|
||||
//-->
|
||||
</script>
|
||||
$(endif)
|
||||
|
||||
<div align="center">
|
||||
<a href="$(link-login-only)?target=lv&dst=$(link-orig-esc)">Latviski</a>
|
||||
</div>
|
||||
|
||||
<table width="100%" style="margin-top: 10%;">
|
||||
<tr>
|
||||
<td align="center" valign="middle">
|
||||
<div class="notice" style="color: #c1c1c1; font-size: 9px">Please log on to use the internet hotspot service<br />$(if trial == 'yes')Free trial available, <a style="color: #FF8080"href="$(link-login-only)?dst=$(link-orig-esc)&username=T-$(mac-esc)">click here</a>.$(endif)</div><br />
|
||||
<table width="280" height="280" style="border: 1px solid #cccccc; padding: 0px;" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td align="center" valign="bottom" height="175" colspan="2">
|
||||
<form name="login" action="$(link-login-only)" method="post"
|
||||
$(if chap-id) onSubmit="return doLogin()" $(endif)>
|
||||
<input type="hidden" name="dst" value="$(link-orig)" />
|
||||
<input type="hidden" name="popup" value="true" />
|
||||
|
||||
<table width="100" style="background-color: #ffffff">
|
||||
<tr><td align="right">login</td>
|
||||
<td><input style="width: 80px" name="username" type="text" value="$(username)"/></td>
|
||||
</tr>
|
||||
<tr><td align="right">password</td>
|
||||
<td><input style="width: 80px" name="password" type="password"/></td>
|
||||
</tr>
|
||||
<tr><td> </td>
|
||||
<td><input type="submit" value="OK" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td align="center"><a href="http://www.mikrotik.com" target="_blank" style="border: none;"><img src="/img/logobottom.png" alt="mikrotik" /></a></td></tr>
|
||||
</table>
|
||||
|
||||
<br /><div style="color: #c1c1c1; font-size: 9px">Powered by MikroTik RouterOS</div>
|
||||
$(if error)<br /><div style="color: #FF8080; font-size: 9px">$(error)</div>$(endif)
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
document.login.username.focus();
|
||||
//-->
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
73
captivemicrotik/hotspot/logout.html
Normal file
73
captivemicrotik/hotspot/logout.html
Normal file
@ -0,0 +1,73 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>mikrotik hotspot > logout</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta http-equiv="pragma" content="no-cache">
|
||||
<meta http-equiv="expires" content="-1">
|
||||
<style type="text/css">
|
||||
<!--
|
||||
textarea,input,select {
|
||||
background-color: #FDFBFB;
|
||||
border: 1px #BBBBBB solid;
|
||||
padding: 2px;
|
||||
margin: 1px;
|
||||
font-size: 14px;
|
||||
color: #808080;
|
||||
}
|
||||
|
||||
.tabula{
|
||||
|
||||
border-width: 1px;
|
||||
border-collapse: collapse;
|
||||
border-color: #c1c1c1;
|
||||
background-color: transparent;
|
||||
font-family: verdana;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
body{ color: #737373; font-size: 12px; font-family: verdana; }
|
||||
|
||||
a, a:link, a:visited, a:active { color: #AAAAAA; text-decoration: none; font-size: 12px; }
|
||||
a:hover { border-bottom: 1px dotted #c1c1c1; color: #AAAAAA; }
|
||||
img {border: none;}
|
||||
td { font-size: 12px; padding: 4px;}
|
||||
|
||||
-->
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
function openLogin() {
|
||||
if (window.name != 'hotspot_logout') return true;
|
||||
open('$(link-login)', '_blank', '');
|
||||
window.close();
|
||||
return false;
|
||||
}
|
||||
//-->
|
||||
</script>
|
||||
|
||||
<table width="100%" height="100%">
|
||||
|
||||
<tr>
|
||||
<td align="center" valign="middle">
|
||||
<b>you have just logged out</b> <br><br>
|
||||
<table class="tabula" border="1">
|
||||
<tr><td align="right">user name</td><td>$(username)</td></tr>
|
||||
<tr><td align="right">IP address</td><td>$(ip)</td></tr>
|
||||
<tr><td align="right">MAC address</td><td>$(mac)</td></tr>
|
||||
<tr><td align="right">session time</td><td>$(uptime)</td></tr>
|
||||
$(if session-time-left)
|
||||
<tr><td align="right">time left</td><td>$(session-time-left)</td></tr>
|
||||
$(endif)
|
||||
<tr><td align="right">bytes up/down:</td><td>$(bytes-in-nice) / $(bytes-out-nice)</td></tr>
|
||||
</table>
|
||||
<br>
|
||||
<form action="$(link-login)" name="login" onSubmit="return openLogin()">
|
||||
<input type="submit" value="log in">
|
||||
</form>
|
||||
</td>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
49
captivemicrotik/hotspot/lv/alogin.html
Normal file
49
captivemicrotik/hotspot/lv/alogin.html
Normal file
@ -0,0 +1,49 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>mikrotik hotspot > novirzît</title>
|
||||
<meta http-equiv="refresh" content="2; url=$(link-redirect)">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1257">
|
||||
<meta http-equiv="pragma" content="no-cache">
|
||||
<meta http-equiv="expires" content="-1">
|
||||
<style type="text/css">
|
||||
<!--
|
||||
textarea,input,select {
|
||||
background-color: #FDFBFB;
|
||||
border: 1px #BBBBBB solid;
|
||||
padding: 2px;
|
||||
margin: 1px;
|
||||
font-size: 14px;
|
||||
color: #808080;
|
||||
}
|
||||
|
||||
body{ color: #737373; font-size: 12px; font-family: verdana; }
|
||||
|
||||
a, a:link, a:visited, a:active { color: #AAAAAA; text-decoration: none; font-size: 12px; }
|
||||
a:hover { border-bottom: 1px dotted #c1c1c1; color: #AAAAAA; }
|
||||
img {border: none;}
|
||||
td { font-size: 12px; color: #7A7A7A; }
|
||||
|
||||
-->
|
||||
</style>
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
function startClock() {
|
||||
$(if popup == 'true')
|
||||
open('$(link-status)', 'hotspot_status', 'toolbar=0,location=0,directories=0,status=0,menubars=0,resizable=1,width=290,height=200');
|
||||
$(endif)
|
||||
location.href = '$(link-redirect)';
|
||||
}
|
||||
//-->
|
||||
</script>
|
||||
</head>
|
||||
<body onLoad="startClock()">
|
||||
<table width="100%" height="100%">
|
||||
<tr>
|
||||
<td align="center" valign="middle">
|
||||
Jûs esat pieslçdzies
|
||||
<br><br>
|
||||
Ja nekas nenotiek, klikðíiniet <a href="$(link-redirect)">ðeit</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
104
captivemicrotik/hotspot/lv/errors.txt
Normal file
104
captivemicrotik/hotspot/lv/errors.txt
Normal file
@ -0,0 +1,104 @@
|
||||
# This file contains error messages which are shown to user, when http/https
|
||||
# login is used.
|
||||
# These messages can be changed to make user interface more friendly, including
|
||||
# translations to different languages.
|
||||
#
|
||||
# Various variables can be used here as well. Most frequently used ones are:
|
||||
# $(error-orig) - original error message from hotspot
|
||||
# $(ip) - ip address of a client
|
||||
# $(username) - username of client trying to log in
|
||||
|
||||
# internal-error
|
||||
# It should never happen. If it will, error page will be shown
|
||||
# displaying this error message (error-orig will describe what has happened)
|
||||
|
||||
internal-error = sistēmas kļūda ($(error-orig))
|
||||
|
||||
# config-error
|
||||
# Should never happen if hotspot is configured properly.
|
||||
|
||||
config-error = konfigurācijas kļūda ($(error-orig))
|
||||
|
||||
# not-logged-in
|
||||
# Will happen, if status or logout page is requested by user,
|
||||
# which actually is not logged in
|
||||
|
||||
not-logged-in = Jūs neesat pieslēdzies (ip $(ip))
|
||||
|
||||
# ippool-empty
|
||||
# IP address for user is to be assigned from ip pool, but there are no more
|
||||
# addresses in that pool
|
||||
|
||||
ippool-empty = nevaru piešķirt IP adresi - nav vairāk brīvu adrešu krātuvē
|
||||
|
||||
# shutting-down
|
||||
# When shutdown is executed, new clients are not accepted
|
||||
|
||||
shutting-down = hotspot serviss tiek apstādināts, mēģiniet pēc brīža vēlreiz
|
||||
|
||||
# user-session-limit
|
||||
# If user profile has limit of shared-users, then this error will be shown
|
||||
# after reaching this limit
|
||||
|
||||
user-session-limit = lietotājam $(username) vairāk sessijas nav atļautas
|
||||
|
||||
# license-session-limit
|
||||
# Depending on licence number of active hotspot clients is limited to
|
||||
# one or another amount. If this limit is reached, following error is displayed.
|
||||
|
||||
license-session-limit = ir sasniegts maksimālais sessiju skaits ($(error-orig))
|
||||
|
||||
# wrong-mac-username
|
||||
# If username looks like MAC address (12:34:56:78:9a:bc), but is not
|
||||
# a MAC address of this client, login is rejected
|
||||
|
||||
wrong-mac-username = nepareizs lietotāja vārds ($(username)): šī MAC adrese nav tava
|
||||
|
||||
# chap-missing
|
||||
# If http-chap login method is used, but hotspot program does not receive
|
||||
# back encrypted password, this error message is shown.
|
||||
# Possible reasons of failure:
|
||||
# - JavaScript is not enabled in web browser;
|
||||
# - login.html page is not valid;
|
||||
# - challenge value has expired on server (more than 1h of inactivity);
|
||||
# - http-chap login method is recently removed;
|
||||
# If JavaScript is enabled and login.html page is valid,
|
||||
# then retrying to login usually fixes this problem.
|
||||
|
||||
chap-missing = problēmas ar kodu (mēģiniet vēlreiz, atļaujiet JavaScript)
|
||||
|
||||
# invalid-username
|
||||
# Most general case of invalid username or password. If RADIUS server
|
||||
# has sent an error string with Access-Reject message, then it will
|
||||
# override this setting.
|
||||
|
||||
invalid-username = nepareizs lietotāja vārds vai parole
|
||||
|
||||
# invalid-mac
|
||||
# Local users (on hotspot server) can be bound to some MAC address. If login
|
||||
# from different MAC is tried, this error message will be shown.
|
||||
|
||||
invalid-mac = lietotājam $(username) nav atļauts pieslēgties no šīs MAC adreses
|
||||
|
||||
# uptime-limit, traffic-limit
|
||||
# For local hotspot users in case if limits are reached
|
||||
|
||||
uptime-limit = lietotāja $(username) atļautasi pieslēguma laiks ir beidzies
|
||||
traffic-limit = lietotāja $(username) atļautais datu pārraides apjoms ir sasniegts
|
||||
|
||||
# radius-timeout
|
||||
# User is authenticated by RADIUS server, but no response is received from it,
|
||||
# following error will be shown.
|
||||
|
||||
radius-timeout = autorizācijas serveris neatbild (mēģiniet vēlreiz)
|
||||
|
||||
# auth-in-progress
|
||||
# Authorization in progress. Client already has issued an authorization request
|
||||
# which is not yet complete.
|
||||
|
||||
auth-in-progress = notiek autorizācija (mēģiniet vēlāk)
|
||||
|
||||
# radius-reply
|
||||
# Radius server returned some custom error message
|
||||
|
||||
radius-reply = autorizācijas kļūda ($(error-orig))
|
96
captivemicrotik/hotspot/lv/login.html
Normal file
96
captivemicrotik/hotspot/lv/login.html
Normal file
@ -0,0 +1,96 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>mikrotik hotspot > ieeja </title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<meta http-equiv="pragma" content="no-cache" />
|
||||
<meta http-equiv="expires" content="-1" />
|
||||
<style type="text/css">
|
||||
body {color: #737373; font-size: 10px; font-family: verdana;}
|
||||
|
||||
textarea,input,select {
|
||||
background-color: #FDFBFB;
|
||||
border: 1px solid #BBBBBB;
|
||||
padding: 2px;
|
||||
margin: 1px;
|
||||
font-size: 14px;
|
||||
color: #808080;
|
||||
}
|
||||
|
||||
a, a:link, a:visited, a:active { color: #AAAAAA; text-decoration: none; font-size: 10px; }
|
||||
a:hover { border-bottom: 1px dotted #c1c1c1; color: #AAAAAA; }
|
||||
img {border: none;}
|
||||
td { font-size: 14px; color: #7A7A7A; }
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
$(if chap-id)
|
||||
<form name="sendin" action="$(link-login-only)" method="post">
|
||||
<input type="hidden" name="username" />
|
||||
<input type="hidden" name="password" />
|
||||
<input type="hidden" name="dst" value="$(link-orig)" />
|
||||
<input type="hidden" name="popup" value="true" />
|
||||
</form>
|
||||
|
||||
<script type="text/javascript" src="/md5.js"></script>
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
function doLogin() {
|
||||
document.sendin.username.value = document.login.username.value;
|
||||
document.sendin.password.value = hexMD5('$(chap-id)' + document.login.password.value + '$(chap-challenge)');
|
||||
document.sendin.submit();
|
||||
return false;
|
||||
}
|
||||
//-->
|
||||
</script>
|
||||
$(endif)
|
||||
|
||||
<div align="center">
|
||||
<a href="$(link-login-only)?target=%2F&dst=$(link-orig-esc)">English</a>
|
||||
</div>
|
||||
|
||||
<table width="100%" style="margin-top: 10%;">
|
||||
<tr>
|
||||
<td align="center" valign="middle">
|
||||
<div class="notice" style="color: #c1c1c1; font-size: 9px">Lūdzu pieslēdzieties, lai lietotu mikrotik hotspot servisu.<br />$(if trial == 'yes')Lai izmēģinātu bez maksas, <a style="color: #FF8080"href="$(link-login-only)?dst=$(link-orig-esc)&username=T-$(mac-esc)">spiediet šeit.</a>.$(endif)</div><br />
|
||||
<table width="240" height="240" style="border: 1px solid #cccccc; padding: 0px;" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td align="center" valign="bottom" height="175" colspan="2">
|
||||
<form name="login" action="$(link-login-only)" method="post"
|
||||
$(if chap-id) onSubmit="return doLogin()" $(endif)>
|
||||
<input type="hidden" name="dst" value="$(link-orig)" />
|
||||
<input type="hidden" name="popup" value="true" />
|
||||
|
||||
<table width="100" style="background-color: #ffffff">
|
||||
<tr><td align="right">login</td>
|
||||
<td><input style="width: 80px" name="username" type="text" value="$(username)"/></td>
|
||||
</tr>
|
||||
<tr><td align="right">parole</td>
|
||||
<td><input style="width: 80px" name="password" type="password"/></td>
|
||||
</tr>
|
||||
<tr><td> </td>
|
||||
<td><input type="submit" value="OK" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td align="center"><a href="http://www.mikrotik.com" target="_blank" style="border: none;"><img src="/img/logobottom.png" alt="mikrotik" /></a></td></tr>
|
||||
</table>
|
||||
|
||||
<br /><div style="color: #c1c1c1; font-size: 9px">nodrošina mikrotik routeros © 2005 mikrotik</div>
|
||||
$(if error)<br /><div style="color: #FF8080; font-size: 9px">$(error)</div>$(endif)
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
document.login.username.focus();
|
||||
//-->
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
73
captivemicrotik/hotspot/lv/logout.html
Normal file
73
captivemicrotik/hotspot/lv/logout.html
Normal file
@ -0,0 +1,73 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>mikrotik hotspot > atslçdzies</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1257">
|
||||
<meta http-equiv="pragma" content="no-cache">
|
||||
<meta http-equiv="expires" content="-1">
|
||||
<style type="text/css">
|
||||
<!--
|
||||
textarea,input,select {
|
||||
background-color: #FDFBFB;
|
||||
border: 1px #BBBBBB solid;
|
||||
padding: 2px;
|
||||
margin: 1px;
|
||||
font-size: 14px;
|
||||
color: #808080;
|
||||
}
|
||||
|
||||
.tabula{
|
||||
|
||||
border-width: 1px;
|
||||
border-collapse: collapse;
|
||||
border-color: #c1c1c1;
|
||||
background-color: transparent;
|
||||
font-family: verdana;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
body{ color: #737373; font-size: 12px; font-family: verdana; }
|
||||
|
||||
a, a:link, a:visited, a:active { color: #AAAAAA; text-decoration: none; font-size: 12px; }
|
||||
a:hover { border-bottom: 1px dotted #c1c1c1; color: #AAAAAA; }
|
||||
img {border: none;}
|
||||
td { font-size: 12px; padding: 4px;}
|
||||
|
||||
-->
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
function openLogin() {
|
||||
if (window.name != 'hotspot_logout') return true;
|
||||
open('$(link-login)', '_blank', '');
|
||||
window.close();
|
||||
return false;
|
||||
}
|
||||
//-->
|
||||
</script>
|
||||
|
||||
<table width="100%" height="100%">
|
||||
|
||||
<tr>
|
||||
<td align="center" valign="middle">
|
||||
<b>sessija ir aizvçrta</b> <br><br>
|
||||
<table class="tabula" border="1">
|
||||
<tr><td align="right">lietotâja vârds</td><td>$(username)</td></tr>
|
||||
<tr><td align="right">IP adrese</td><td>$(ip)</td></tr>
|
||||
<tr><td align="right">MAC adrese</td><td>$(mac)</td></tr>
|
||||
<tr><td align="right">sesijas ilgums</td><td>$(uptime)</td></tr>
|
||||
$(if session-time-left)
|
||||
<tr><td align="right">atlikuðais laiks</td><td>$(session-time-left)</td></tr>
|
||||
$(endif)
|
||||
<tr><td align="right">baiti prom/ðurp:</td><td>$(bytes-in-nice) / $(bytes-out-nice)</td></tr>
|
||||
</table>
|
||||
<br>
|
||||
<form action="$(link-login)" name="login" onSubmit="return openLogin()">
|
||||
<input type="submit" value="pieslçgties no jauna">
|
||||
</form>
|
||||
</td>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
62
captivemicrotik/hotspot/lv/radvert.html
Normal file
62
captivemicrotik/hotspot/lv/radvert.html
Normal file
@ -0,0 +1,62 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>mikrotik hotspot > advertisement</title>
|
||||
<meta http-equiv="refresh" content="2; url=$(link-orig)">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1257">
|
||||
<meta http-equiv="pragma" content="no-cache">
|
||||
<meta http-equiv="expires" content="-1">
|
||||
<style type="text/css">
|
||||
<!--
|
||||
textarea,input,select {
|
||||
background-color: #FDFBFB;
|
||||
border: 1px #BBBBBB solid;
|
||||
padding: 2px;
|
||||
margin: 1px;
|
||||
font-size: 14px;
|
||||
color: #808080;
|
||||
}
|
||||
|
||||
body{ color: #737373; font-size: 12px; font-family: verdana; }
|
||||
|
||||
a, a:link, a:visited, a:active { color: #AAAAAA; text-decoration: none; font-size: 12px; }
|
||||
a:hover { border-bottom: 1px dotted #c1c1c1; color: #AAAAAA; }
|
||||
img {border: none;}
|
||||
td { font-size: 12px; color: #7A7A7A; }
|
||||
|
||||
-->
|
||||
</style>
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
var popup = '';
|
||||
function openOrig() {
|
||||
if (window.focus) popup.focus();
|
||||
location.href = '$(link-orig)';
|
||||
}
|
||||
function openAd() {
|
||||
location.href = '$(link-redirect)';
|
||||
}
|
||||
function openAdvert() {
|
||||
if (window.name != 'hotspot_advert') {
|
||||
popup = open('$(link-redirect)', 'hotspot_advert', '');
|
||||
setTimeout("openOrig()", 1000);
|
||||
return;
|
||||
}
|
||||
setTimeout("openAd()", 1000);
|
||||
}
|
||||
//-->
|
||||
</script>
|
||||
</head>
|
||||
<body onLoad="openAdvert()">
|
||||
<table width="100%" height="100%">
|
||||
<tr>
|
||||
<td align="center" valign="middle">
|
||||
Reklâma.
|
||||
<br><br>
|
||||
Ja nekas nenotiek, atveriet
|
||||
<a href="$(link-redirect)" target="hotspot_advert">reklâmu</a>
|
||||
paðrocîgi.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
100
captivemicrotik/hotspot/lv/status.html
Normal file
100
captivemicrotik/hotspot/lv/status.html
Normal file
@ -0,0 +1,100 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>mikrotik hotspot > statuss</title>
|
||||
$(if refresh-timeout)
|
||||
<meta http-equiv="refresh" content="$(refresh-timeout-secs)">
|
||||
$(endif)
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1257">
|
||||
<meta http-equiv="pragma" content="no-cache">
|
||||
<meta http-equiv="expires" content="-1">
|
||||
<style type="text/css">
|
||||
<!--
|
||||
textarea,input,select {
|
||||
background-color: #FDFBFB;
|
||||
border: 1px #BBBBBB solid;
|
||||
padding: 2px;
|
||||
margin: 1px;
|
||||
font-size: 14px;
|
||||
color: #808080;
|
||||
}
|
||||
|
||||
.tabula{
|
||||
|
||||
border-width: 1px;
|
||||
border-collapse: collapse;
|
||||
border-color: #c1c1c1;
|
||||
background-color: transparent;
|
||||
font-family: verdana;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
body{ color: #737373; font-size: 12px; font-family: verdana; }
|
||||
|
||||
a, a:link, a:visited, a:active { color: #AAAAAA; text-decoration: none; font-size: 12px; }
|
||||
a:hover { border-bottom: 1px dotted #c1c1c1; color: #AAAAAA; }
|
||||
img {border: none;}
|
||||
td { font-size: 12px; padding: 4px;}
|
||||
|
||||
-->
|
||||
</style>
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
$(if advert-pending == 'yes')
|
||||
var popup = '';
|
||||
function focusAdvert() {
|
||||
if (window.focus) popup.focus();
|
||||
}
|
||||
function openAdvert() {
|
||||
popup = open('$(link-advert)', 'hotspot_advert', '');
|
||||
setTimeout("focusAdvert()", 1000);
|
||||
}
|
||||
$(endif)
|
||||
function openLogout() {
|
||||
if (window.name != 'hotspot_status') return true;
|
||||
open('$(link-logout)', 'hotspot_logout', 'toolbar=0,location=0,directories=0,status=0,menubars=0,resizable=1,width=280,height=250');
|
||||
window.close();
|
||||
return false;
|
||||
}
|
||||
//-->
|
||||
</script>
|
||||
</head>
|
||||
<body bottommargin="0" topmargin="0" leftmargin="0" rightmargin="0"
|
||||
$(if advert-pending == 'yes')
|
||||
onLoad="openAdvert()"
|
||||
$(endif)
|
||||
>
|
||||
<table width="100%" height="100%">
|
||||
|
||||
<tr>
|
||||
<td align="center" valign="middle">
|
||||
<form action="$(link-logout)" name="logout" onSubmit="return openLogout()">
|
||||
<table border="1" class="tabula">
|
||||
$(if login-by == 'trial')
|
||||
<br><div style="text-align: center;">Sveiks!</div><br>
|
||||
$(elif login-by != 'mac')
|
||||
<br><div style="text-align: center;">Sveiks $(username)!</div><br>
|
||||
$(endif)
|
||||
<tr><td align="right">IP adrese:</td><td>$(ip)</td></tr>
|
||||
<tr><td align="right">baiti prom/ðurp:</td><td>$(bytes-in-nice) / $(bytes-out-nice)</td></tr>
|
||||
$(if session-time-left)
|
||||
<tr><td align="right">ilgums / atlicis:</td><td>$(uptime) / $(session-time-left)</td></tr>
|
||||
$(else)
|
||||
<tr><td align="right">ilgums:</td><td>$(uptime)</td></tr>
|
||||
$(endif)
|
||||
$(if blocked == 'yes')
|
||||
<tr><td align="right">statuss:</td><td><div style="color: #FF8080">
|
||||
nepiecieðama <a href="$(link-advert)" target="hotspot_advert">reklâma</a></div></td>
|
||||
$(elif refresh-timeout)
|
||||
<tr><td align="right">intervâls:</td><td>$(refresh-timeout)</td>
|
||||
$(endif)
|
||||
|
||||
</table>
|
||||
$(if login-by-mac != 'yes')
|
||||
<br>
|
||||
<input type="submit" value="atslçgties">
|
||||
$(endif)
|
||||
</form>
|
||||
</td>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
217
captivemicrotik/hotspot/md5.js
Normal file
217
captivemicrotik/hotspot/md5.js
Normal file
@ -0,0 +1,217 @@
|
||||
/*
|
||||
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
|
||||
* Digest Algorithm, as defined in RFC 1321.
|
||||
* Version 1.1 Copyright (C) Paul Johnston 1999 - 2002.
|
||||
* Code also contributed by Greg Holt
|
||||
* See http://pajhome.org.uk/site/legal.html for details.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
|
||||
* to work around bugs in some JS interpreters.
|
||||
*/
|
||||
function safe_add(x, y)
|
||||
{
|
||||
var lsw = (x & 0xFFFF) + (y & 0xFFFF)
|
||||
var msw = (x >> 16) + (y >> 16) + (lsw >> 16)
|
||||
return (msw << 16) | (lsw & 0xFFFF)
|
||||
}
|
||||
|
||||
/*
|
||||
* Bitwise rotate a 32-bit number to the left.
|
||||
*/
|
||||
function rol(num, cnt)
|
||||
{
|
||||
return (num << cnt) | (num >>> (32 - cnt))
|
||||
}
|
||||
|
||||
/*
|
||||
* These functions implement the four basic operations the algorithm uses.
|
||||
*/
|
||||
function cmn(q, a, b, x, s, t)
|
||||
{
|
||||
return safe_add(rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b)
|
||||
}
|
||||
function ff(a, b, c, d, x, s, t)
|
||||
{
|
||||
return cmn((b & c) | ((~b) & d), a, b, x, s, t)
|
||||
}
|
||||
function gg(a, b, c, d, x, s, t)
|
||||
{
|
||||
return cmn((b & d) | (c & (~d)), a, b, x, s, t)
|
||||
}
|
||||
function hh(a, b, c, d, x, s, t)
|
||||
{
|
||||
return cmn(b ^ c ^ d, a, b, x, s, t)
|
||||
}
|
||||
function ii(a, b, c, d, x, s, t)
|
||||
{
|
||||
return cmn(c ^ (b | (~d)), a, b, x, s, t)
|
||||
}
|
||||
|
||||
/*
|
||||
* Calculate the MD5 of an array of little-endian words, producing an array
|
||||
* of little-endian words.
|
||||
*/
|
||||
function coreMD5(x)
|
||||
{
|
||||
var a = 1732584193
|
||||
var b = -271733879
|
||||
var c = -1732584194
|
||||
var d = 271733878
|
||||
|
||||
for(i = 0; i < x.length; i += 16)
|
||||
{
|
||||
var olda = a
|
||||
var oldb = b
|
||||
var oldc = c
|
||||
var oldd = d
|
||||
|
||||
a = ff(a, b, c, d, x[i+ 0], 7 , -680876936)
|
||||
d = ff(d, a, b, c, x[i+ 1], 12, -389564586)
|
||||
c = ff(c, d, a, b, x[i+ 2], 17, 606105819)
|
||||
b = ff(b, c, d, a, x[i+ 3], 22, -1044525330)
|
||||
a = ff(a, b, c, d, x[i+ 4], 7 , -176418897)
|
||||
d = ff(d, a, b, c, x[i+ 5], 12, 1200080426)
|
||||
c = ff(c, d, a, b, x[i+ 6], 17, -1473231341)
|
||||
b = ff(b, c, d, a, x[i+ 7], 22, -45705983)
|
||||
a = ff(a, b, c, d, x[i+ 8], 7 , 1770035416)
|
||||
d = ff(d, a, b, c, x[i+ 9], 12, -1958414417)
|
||||
c = ff(c, d, a, b, x[i+10], 17, -42063)
|
||||
b = ff(b, c, d, a, x[i+11], 22, -1990404162)
|
||||
a = ff(a, b, c, d, x[i+12], 7 , 1804603682)
|
||||
d = ff(d, a, b, c, x[i+13], 12, -40341101)
|
||||
c = ff(c, d, a, b, x[i+14], 17, -1502002290)
|
||||
b = ff(b, c, d, a, x[i+15], 22, 1236535329)
|
||||
|
||||
a = gg(a, b, c, d, x[i+ 1], 5 , -165796510)
|
||||
d = gg(d, a, b, c, x[i+ 6], 9 , -1069501632)
|
||||
c = gg(c, d, a, b, x[i+11], 14, 643717713)
|
||||
b = gg(b, c, d, a, x[i+ 0], 20, -373897302)
|
||||
a = gg(a, b, c, d, x[i+ 5], 5 , -701558691)
|
||||
d = gg(d, a, b, c, x[i+10], 9 , 38016083)
|
||||
c = gg(c, d, a, b, x[i+15], 14, -660478335)
|
||||
b = gg(b, c, d, a, x[i+ 4], 20, -405537848)
|
||||
a = gg(a, b, c, d, x[i+ 9], 5 , 568446438)
|
||||
d = gg(d, a, b, c, x[i+14], 9 , -1019803690)
|
||||
c = gg(c, d, a, b, x[i+ 3], 14, -187363961)
|
||||
b = gg(b, c, d, a, x[i+ 8], 20, 1163531501)
|
||||
a = gg(a, b, c, d, x[i+13], 5 , -1444681467)
|
||||
d = gg(d, a, b, c, x[i+ 2], 9 , -51403784)
|
||||
c = gg(c, d, a, b, x[i+ 7], 14, 1735328473)
|
||||
b = gg(b, c, d, a, x[i+12], 20, -1926607734)
|
||||
|
||||
a = hh(a, b, c, d, x[i+ 5], 4 , -378558)
|
||||
d = hh(d, a, b, c, x[i+ 8], 11, -2022574463)
|
||||
c = hh(c, d, a, b, x[i+11], 16, 1839030562)
|
||||
b = hh(b, c, d, a, x[i+14], 23, -35309556)
|
||||
a = hh(a, b, c, d, x[i+ 1], 4 , -1530992060)
|
||||
d = hh(d, a, b, c, x[i+ 4], 11, 1272893353)
|
||||
c = hh(c, d, a, b, x[i+ 7], 16, -155497632)
|
||||
b = hh(b, c, d, a, x[i+10], 23, -1094730640)
|
||||
a = hh(a, b, c, d, x[i+13], 4 , 681279174)
|
||||
d = hh(d, a, b, c, x[i+ 0], 11, -358537222)
|
||||
c = hh(c, d, a, b, x[i+ 3], 16, -722521979)
|
||||
b = hh(b, c, d, a, x[i+ 6], 23, 76029189)
|
||||
a = hh(a, b, c, d, x[i+ 9], 4 , -640364487)
|
||||
d = hh(d, a, b, c, x[i+12], 11, -421815835)
|
||||
c = hh(c, d, a, b, x[i+15], 16, 530742520)
|
||||
b = hh(b, c, d, a, x[i+ 2], 23, -995338651)
|
||||
|
||||
a = ii(a, b, c, d, x[i+ 0], 6 , -198630844)
|
||||
d = ii(d, a, b, c, x[i+ 7], 10, 1126891415)
|
||||
c = ii(c, d, a, b, x[i+14], 15, -1416354905)
|
||||
b = ii(b, c, d, a, x[i+ 5], 21, -57434055)
|
||||
a = ii(a, b, c, d, x[i+12], 6 , 1700485571)
|
||||
d = ii(d, a, b, c, x[i+ 3], 10, -1894986606)
|
||||
c = ii(c, d, a, b, x[i+10], 15, -1051523)
|
||||
b = ii(b, c, d, a, x[i+ 1], 21, -2054922799)
|
||||
a = ii(a, b, c, d, x[i+ 8], 6 , 1873313359)
|
||||
d = ii(d, a, b, c, x[i+15], 10, -30611744)
|
||||
c = ii(c, d, a, b, x[i+ 6], 15, -1560198380)
|
||||
b = ii(b, c, d, a, x[i+13], 21, 1309151649)
|
||||
a = ii(a, b, c, d, x[i+ 4], 6 , -145523070)
|
||||
d = ii(d, a, b, c, x[i+11], 10, -1120210379)
|
||||
c = ii(c, d, a, b, x[i+ 2], 15, 718787259)
|
||||
b = ii(b, c, d, a, x[i+ 9], 21, -343485551)
|
||||
|
||||
a = safe_add(a, olda)
|
||||
b = safe_add(b, oldb)
|
||||
c = safe_add(c, oldc)
|
||||
d = safe_add(d, oldd)
|
||||
}
|
||||
return [a, b, c, d]
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert an array of little-endian words to a hex string.
|
||||
*/
|
||||
function binl2hex(binarray)
|
||||
{
|
||||
var hex_tab = "0123456789abcdef"
|
||||
var str = ""
|
||||
for(var i = 0; i < binarray.length * 4; i++)
|
||||
{
|
||||
str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
|
||||
hex_tab.charAt((binarray[i>>2] >> ((i%4)*8)) & 0xF)
|
||||
}
|
||||
return str
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert an array of little-endian words to a base64 encoded string.
|
||||
*/
|
||||
function binl2b64(binarray)
|
||||
{
|
||||
var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
|
||||
var str = ""
|
||||
for(var i = 0; i < binarray.length * 32; i += 6)
|
||||
{
|
||||
str += tab.charAt(((binarray[i>>5] << (i%32)) & 0x3F) |
|
||||
((binarray[i>>5+1] >> (32-i%32)) & 0x3F))
|
||||
}
|
||||
return str
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert an 8-bit character string to a sequence of 16-word blocks, stored
|
||||
* as an array, and append appropriate padding for MD4/5 calculation.
|
||||
* If any of the characters are >255, the high byte is silently ignored.
|
||||
*/
|
||||
function str2binl(str)
|
||||
{
|
||||
var nblk = ((str.length + 8) >> 6) + 1 // number of 16-word blocks
|
||||
var blks = new Array(nblk * 16)
|
||||
for(var i = 0; i < nblk * 16; i++) blks[i] = 0
|
||||
for(var i = 0; i < str.length; i++)
|
||||
blks[i>>2] |= (str.charCodeAt(i) & 0xFF) << ((i%4) * 8)
|
||||
blks[i>>2] |= 0x80 << ((i%4) * 8)
|
||||
blks[nblk*16-2] = str.length * 8
|
||||
return blks
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert a wide-character string to a sequence of 16-word blocks, stored as
|
||||
* an array, and append appropriate padding for MD4/5 calculation.
|
||||
*/
|
||||
function strw2binl(str)
|
||||
{
|
||||
var nblk = ((str.length + 4) >> 5) + 1 // number of 16-word blocks
|
||||
var blks = new Array(nblk * 16)
|
||||
for(var i = 0; i < nblk * 16; i++) blks[i] = 0
|
||||
for(var i = 0; i < str.length; i++)
|
||||
blks[i>>1] |= str.charCodeAt(i) << ((i%2) * 16)
|
||||
blks[i>>1] |= 0x80 << ((i%2) * 16)
|
||||
blks[nblk*16-2] = str.length * 16
|
||||
return blks
|
||||
}
|
||||
|
||||
/*
|
||||
* External interface
|
||||
*/
|
||||
function hexMD5 (str) { return binl2hex(coreMD5( str2binl(str))) }
|
||||
function hexMD5w(str) { return binl2hex(coreMD5(strw2binl(str))) }
|
||||
function b64MD5 (str) { return binl2b64(coreMD5( str2binl(str))) }
|
||||
function b64MD5w(str) { return binl2b64(coreMD5(strw2binl(str))) }
|
||||
/* Backward compatibility */
|
||||
function calcMD5(str) { return binl2hex(coreMD5( str2binl(str))) }
|
62
captivemicrotik/hotspot/radvert.html
Normal file
62
captivemicrotik/hotspot/radvert.html
Normal file
@ -0,0 +1,62 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>mikrotik hotspot > advertisement</title>
|
||||
<meta http-equiv="refresh" content="2; url=$(link-orig)">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta http-equiv="pragma" content="no-cache">
|
||||
<meta http-equiv="expires" content="-1">
|
||||
<style type="text/css">
|
||||
<!--
|
||||
textarea,input,select {
|
||||
background-color: #FDFBFB;
|
||||
border: 1px #BBBBBB solid;
|
||||
padding: 2px;
|
||||
margin: 1px;
|
||||
font-size: 14px;
|
||||
color: #808080;
|
||||
}
|
||||
|
||||
body{ color: #737373; font-size: 12px; font-family: verdana; }
|
||||
|
||||
a, a:link, a:visited, a:active { color: #AAAAAA; text-decoration: none; font-size: 12px; }
|
||||
a:hover { border-bottom: 1px dotted #c1c1c1; color: #AAAAAA; }
|
||||
img {border: none;}
|
||||
td { font-size: 12px; color: #7A7A7A; }
|
||||
|
||||
-->
|
||||
</style>
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
var popup = '';
|
||||
function openOrig() {
|
||||
if (window.focus) popup.focus();
|
||||
location.href = unescape('$(link-orig-esc)');
|
||||
}
|
||||
function openAd() {
|
||||
location.href = unescape('$(link-redirect-esc)');
|
||||
}
|
||||
function openAdvert() {
|
||||
if (window.name != 'hotspot_advert') {
|
||||
popup = open('$(link-redirect)', 'hotspot_advert', '');
|
||||
setTimeout("openOrig()", 1000);
|
||||
return;
|
||||
}
|
||||
setTimeout("openAd()", 1000);
|
||||
}
|
||||
//-->
|
||||
</script>
|
||||
</head>
|
||||
<body onLoad="openAdvert()">
|
||||
<table width="100%" height="100%">
|
||||
<tr>
|
||||
<td align="center" valign="middle">
|
||||
Advertisement.
|
||||
<br><br>
|
||||
If nothing happens, open
|
||||
<a href="$(link-redirect)" target="hotspot_advert">advertisement</a>
|
||||
manually.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
12
captivemicrotik/hotspot/redirect.html
Normal file
12
captivemicrotik/hotspot/redirect.html
Normal file
@ -0,0 +1,12 @@
|
||||
$(if http-status == 302)Hotspot redirect$(endif)
|
||||
$(if http-header == "Location")$(link-redirect)$(endif)
|
||||
<html>
|
||||
<head>
|
||||
<title>...</title>
|
||||
<meta http-equiv="refresh" content="0; url=$(link-redirect)">
|
||||
<meta http-equiv="pragma" content="no-cache">
|
||||
<meta http-equiv="expires" content="-1">
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
27
captivemicrotik/hotspot/rlogin.html
Normal file
27
captivemicrotik/hotspot/rlogin.html
Normal file
@ -0,0 +1,27 @@
|
||||
$(if http-status == 302)Hotspot login required$(endif)
|
||||
$(if http-header == "Location")$(link-redirect)$(endif)
|
||||
<html>
|
||||
<!--
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<WISPAccessGatewayParam
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="http://$(hostname)/xml/WISPAccessGatewayParam.xsd">
|
||||
<Redirect>
|
||||
<AccessProcedure>1.0</AccessProcedure>
|
||||
<AccessLocation>$(location-id)</AccessLocation>
|
||||
<LocationName>$(location-name)</LocationName>
|
||||
<LoginURL>$(link-login-only)?target=xml</LoginURL>
|
||||
<MessageType>100</MessageType>
|
||||
<ResponseCode>0</ResponseCode>
|
||||
</Redirect>
|
||||
</WISPAccessGatewayParam>
|
||||
-->
|
||||
<head>
|
||||
<title>...</title>
|
||||
<meta http-equiv="refresh" content="0; url=$(link-redirect)">
|
||||
<meta http-equiv="pragma" content="no-cache">
|
||||
<meta http-equiv="expires" content="-1">
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
104
captivemicrotik/hotspot/status.html
Normal file
104
captivemicrotik/hotspot/status.html
Normal file
@ -0,0 +1,104 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>mikrotik hotspot > status</title>
|
||||
$(if refresh-timeout)
|
||||
<meta http-equiv="refresh" content="$(refresh-timeout-secs)">
|
||||
$(endif)
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta http-equiv="pragma" content="no-cache">
|
||||
<meta http-equiv="expires" content="-1">
|
||||
<style type="text/css">
|
||||
<!--
|
||||
textarea,input,select {
|
||||
background-color: #FDFBFB;
|
||||
border: 1px #BBBBBB solid;
|
||||
padding: 2px;
|
||||
margin: 1px;
|
||||
font-size: 14px;
|
||||
color: #808080;
|
||||
}
|
||||
|
||||
.tabula{
|
||||
|
||||
border-width: 1px;
|
||||
border-collapse: collapse;
|
||||
border-color: #c1c1c1;
|
||||
background-color: transparent;
|
||||
font-family: verdana;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
body{ color: #737373; font-size: 12px; font-family: verdana; }
|
||||
|
||||
a, a:link, a:visited, a:active { color: #AAAAAA; text-decoration: none; font-size: 12px; }
|
||||
a:hover { border-bottom: 1px dotted #c1c1c1; color: #AAAAAA; }
|
||||
img {border: none;}
|
||||
td { font-size: 12px; padding: 4px;}
|
||||
|
||||
-->
|
||||
</style>
|
||||
<script language="JavaScript">
|
||||
<!--
|
||||
$(if advert-pending == 'yes')
|
||||
var popup = '';
|
||||
function focusAdvert() {
|
||||
if (window.focus) popup.focus();
|
||||
}
|
||||
function openAdvert() {
|
||||
popup = open('$(link-advert)', 'hotspot_advert', '');
|
||||
setTimeout("focusAdvert()", 1000);
|
||||
}
|
||||
$(endif)
|
||||
function openLogout() {
|
||||
if (window.name != 'hotspot_status') return true;
|
||||
open('$(link-logout)', 'hotspot_logout', 'toolbar=0,location=0,directories=0,status=0,menubars=0,resizable=1,width=280,height=250');
|
||||
window.close();
|
||||
return false;
|
||||
}
|
||||
//-->
|
||||
</script>
|
||||
</head>
|
||||
<body bottommargin="0" topmargin="0" leftmargin="0" rightmargin="0"
|
||||
$(if advert-pending == 'yes')
|
||||
onLoad="openAdvert()"
|
||||
$(endif)
|
||||
>
|
||||
<table width="100%" height="100%">
|
||||
|
||||
<tr>
|
||||
<td align="center" valign="middle">
|
||||
<form action="$(link-logout)" name="logout" onSubmit="return openLogout()">
|
||||
<table border="1" class="tabula">
|
||||
$(if login-by == 'trial')
|
||||
<br><div style="text-align: center;">Welcome trial user!</div><br>
|
||||
$(elif login-by != 'mac')
|
||||
<br><div style="text-align: center;">Welcome $(username)!</div><br>
|
||||
$(endif)
|
||||
<tr><td align="right">IP address:</td><td>$(ip)</td></tr>
|
||||
<tr><td align="right">bytes up/down:</td><td>$(bytes-in-nice) / $(bytes-out-nice)</td></tr>
|
||||
$(if session-time-left)
|
||||
<tr><td align="right">connected / left:</td><td>$(uptime) / $(session-time-left)</td></tr>
|
||||
$(else)
|
||||
<tr><td align="right">connected:</td><td>$(uptime)</td></tr>
|
||||
$(endif)
|
||||
$(if blocked == 'yes')
|
||||
<tr><td align="right">status:</td><td><div style="color: #FF8080">
|
||||
<a href="$(link-advert)" target="hotspot_advert">advertisement</a> required</div></td>
|
||||
$(elif refresh-timeout)
|
||||
<tr><td align="right">status refresh:</td><td>$(refresh-timeout)</td>
|
||||
$(endif)
|
||||
|
||||
</table>
|
||||
$(if login-by-mac != 'yes')
|
||||
<br>
|
||||
<!-- user manager link. if user manager resides on other router, replace $(hostname) by its address
|
||||
<button onclick="document.location='http://$(hostname)/user?subs='; return false;">status</button>
|
||||
<!-- end of user manager link -->
|
||||
<input type="submit" value="log off">
|
||||
$(endif)
|
||||
</form>
|
||||
|
||||
</td>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
101
captivemicrotik/hotspot/xml/WISPAccessGatewayParam.xsd
Normal file
101
captivemicrotik/hotspot/xml/WISPAccessGatewayParam.xsd
Normal file
@ -0,0 +1,101 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
<xs:element name="WISPAccessGatewayParam">
|
||||
<xs:complexType>
|
||||
<xs:choice>
|
||||
<xs:element name="Redirect" type="RedirectType"/>
|
||||
<xs:element name="Proxy" type="ProxyType"/>
|
||||
<xs:element name="AuthenticationReply" type="AuthenticationReplyType"/>
|
||||
<xs:element name="AuthenticationPollReply" type="AuthenticationPollReplyType"/>
|
||||
<xs:element name="LogoffReply" type="LogoffReplyType"/>
|
||||
<xs:element name="AbortLoginReply" type="AbortLoginReplyType"/>
|
||||
</xs:choice>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:simpleType name="AbortLoginURLType">
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="NextURLType">
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="AccessProcedureType">
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="AccessLocationType">
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="LocationNameType">
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="LoginURLType">
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="MessageTypeType">
|
||||
<xs:restriction base="xs:integer"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="ResponseCodeType">
|
||||
<xs:restriction base="xs:integer"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="ReplyMessageType">
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="LoginResultsURLType">
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="LogoffURLType">
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="DelayType">
|
||||
<xs:restriction base="xs:integer"/>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="RedirectType">
|
||||
<xs:all>
|
||||
<xs:element name="AccessProcedure" type="AccessProcedureType"/>
|
||||
<xs:element name="AccessLocation" type="AccessLocationType"/>
|
||||
<xs:element name="LocationName" type="LocationNameType"/>
|
||||
<xs:element name="LoginURL" type="LoginURLType"/>
|
||||
<xs:element name="AbortLoginURL" type="AbortLoginURLType"/>
|
||||
<xs:element name="MessageType" type="MessageTypeType"/>
|
||||
<xs:element name="ResponseCode" type="ResponseCodeType"/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="ProxyType">
|
||||
<xs:all>
|
||||
<xs:element name="MessageType" type="MessageTypeType"/>
|
||||
<xs:element name="ResponseCode" type="ResponseCodeType"/>
|
||||
<xs:element name="NextURL" type="NextURLType" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element name="Delay" type="DelayType" minOccurs="0" maxOccurs="1"/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="AuthenticationReplyType">
|
||||
<xs:all>
|
||||
<xs:element name="MessageType" type="MessageTypeType"/>
|
||||
<xs:element name="ResponseCode" type="ResponseCodeType"/>
|
||||
<xs:element name="ReplyMessage" type="ReplyMessageType" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element name="LoginResultsURL" type="LoginResultsURLType" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element name="LogoffURL" type="LogoffURLType" minOccurs="0" maxOccurs="1"/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="AuthenticationPollReplyType">
|
||||
<xs:all>
|
||||
<xs:element name="MessageType" type="MessageTypeType"/>
|
||||
<xs:element name="ResponseCode" type="ResponseCodeType"/>
|
||||
<xs:element name="ReplyMessage" type="ReplyMessageType" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element name="Delay" type="DelayType" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element name="LogoffURL" type="LogoffURLType" minOccurs="0" maxOccurs="1"/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="LogoffReplyType">
|
||||
<xs:sequence>
|
||||
<xs:element name="MessageType" type="MessageTypeType"/>
|
||||
<xs:element name="ResponseCode" type="ResponseCodeType"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="AbortLoginReplyType">
|
||||
<xs:sequence>
|
||||
<xs:element name="MessageType" type="MessageTypeType"/>
|
||||
<xs:element name="ResponseCode" type="ResponseCodeType"/>
|
||||
<xs:element name="LogoffURL" type="LogoffURLType" minOccurs="0" maxOccurs="1"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:schema>
|
18
captivemicrotik/hotspot/xml/alogin.html
Normal file
18
captivemicrotik/hotspot/xml/alogin.html
Normal file
@ -0,0 +1,18 @@
|
||||
<HTML> <!--
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<WISPAccessGatewayParam
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="http://$(hostname)/xml/WISPAccessGatewayParam.xsd">
|
||||
<AuthenticationReply>
|
||||
<MessageType>120</MessageType>
|
||||
<ResponseCode>50</ResponseCode>
|
||||
<LogoffURL>$(link-logout)</LogoffURL>
|
||||
<RedirectionURL>$(link-redirect)</RedirectionURL>
|
||||
$(if radius18[0]) <ReplyMessage>$(radius18[0])</ReplyMessage> $(endif)
|
||||
$(if radius18[1]) <ReplyMessage>$(radius18[1])</ReplyMessage> $(endif)
|
||||
$(if radius18[2]) <ReplyMessage>$(radius18[2])</ReplyMessage> $(endif)
|
||||
$(if radius18[3]) <ReplyMessage>$(radius18[3])</ReplyMessage> $(endif)
|
||||
$(if radius18[4]) <ReplyMessage>$(radius18[4])</ReplyMessage> $(endif)
|
||||
</AuthenticationReply>
|
||||
</WISPAccessGatewayParam>
|
||||
--> </HTML>
|
12
captivemicrotik/hotspot/xml/error.html
Normal file
12
captivemicrotik/hotspot/xml/error.html
Normal file
@ -0,0 +1,12 @@
|
||||
<HTML> <!--
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<WISPAccessGatewayParam
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="http://$(hostname)/xml/WISPAccessGatewayParam.xsd">
|
||||
<AuthenticationReply>
|
||||
<MessageType>120</MessageType>
|
||||
<ResponseCode>255</ResponseCode>
|
||||
<ReplyMessage>$(error)</ReplyMessage>
|
||||
</AuthenticationReply>
|
||||
</WISPAccessGatewayParam>
|
||||
--> </HTML>
|
11
captivemicrotik/hotspot/xml/flogout.html
Normal file
11
captivemicrotik/hotspot/xml/flogout.html
Normal file
@ -0,0 +1,11 @@
|
||||
<HTML> <!--
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<WISPAccessGatewayParam
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="http://$(hostname)/xml/WISPAccessGatewayParam.xsd">
|
||||
<LogoffReply>
|
||||
<MessageType>130</MessageType>
|
||||
<ResponseCode>150</ResponseCode>
|
||||
</LogoffReply>
|
||||
</WISPAccessGatewayParam>
|
||||
--> </HTML>
|
22
captivemicrotik/hotspot/xml/login.html
Normal file
22
captivemicrotik/hotspot/xml/login.html
Normal file
@ -0,0 +1,22 @@
|
||||
<HTML> <!--
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<WISPAccessGatewayParam
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="http://$(hostname)/xml/WISPAccessGatewayParam.xsd">
|
||||
<AuthenticationReply>
|
||||
<MessageType>120</MessageType>
|
||||
<ResponseCode>
|
||||
$(if error-type == 'radius-timeout')
|
||||
102
|
||||
$(else)
|
||||
100
|
||||
$(endif)
|
||||
</ResponseCode>
|
||||
$(if error) <ReplyMessage>$(error)</ReplyMessage> $(endif)
|
||||
$(if radius18[1]) <ReplyMessage>$(radius18[1])</ReplyMessage> $(endif)
|
||||
$(if radius18[2]) <ReplyMessage>$(radius18[2])</ReplyMessage> $(endif)
|
||||
$(if radius18[3]) <ReplyMessage>$(radius18[3])</ReplyMessage> $(endif)
|
||||
$(if radius18[4]) <ReplyMessage>$(radius18[4])</ReplyMessage> $(endif)
|
||||
</AuthenticationReply>
|
||||
</WISPAccessGatewayParam>
|
||||
--> </HTML>
|
11
captivemicrotik/hotspot/xml/logout.html
Normal file
11
captivemicrotik/hotspot/xml/logout.html
Normal file
@ -0,0 +1,11 @@
|
||||
<HTML> <!--
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<WISPAccessGatewayParam
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="http://$(hostname)/xml/WISPAccessGatewayParam.xsd">
|
||||
<LogoffReply>
|
||||
<MessageType>130</MessageType>
|
||||
<ResponseCode>150</ResponseCode>
|
||||
</LogoffReply>
|
||||
</WISPAccessGatewayParam>
|
||||
--> </HTML>
|
15
captivemicrotik/hotspot/xml/rlogin.html
Normal file
15
captivemicrotik/hotspot/xml/rlogin.html
Normal file
@ -0,0 +1,15 @@
|
||||
<HTML> <!--
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<WISPAccessGatewayParam
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="http://$(hostname)/xml/WISPAccessGatewayParam.xsd">
|
||||
<Redirect>
|
||||
<AccessProcedure>1.0</AccessProcedure>
|
||||
<AccessLocation>$(location-id)</AccessLocation>
|
||||
<LocationName>$(location-name)</LocationName>
|
||||
<LoginURL>$(link-login-only)</LoginURL>
|
||||
<MessageType>100</MessageType>
|
||||
<ResponseCode>0</ResponseCode>
|
||||
</Redirect>
|
||||
</WISPAccessGatewayParam>
|
||||
--> </HTML>
|
Loading…
Reference in New Issue
Block a user