mirror of
https://github.com/SpacehuhnTech/esp8266_deauther.git
synced 2025-12-23 23:20:00 +01:00
152 lines
4.1 KiB
HTML
152 lines
4.1 KiB
HTML
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<link rel="stylesheet" href="style.css">
|
|
<script src="functions.js"></script>
|
|
<meta name="viewport" content="width=device-width, initial-scale=0.8">
|
|
</head>
|
|
<body>
|
|
<nav>
|
|
<a href="index.html">APs</a>
|
|
<a href="clients.html">Clients</a>
|
|
<a href="attack.html">Attack</a>
|
|
<a href="settings.html">Settings</a>
|
|
<ul class="nav right">
|
|
<a href="#" onclick="restartESP()">Restart</a>
|
|
<ul>
|
|
</nav>
|
|
<div id="content">
|
|
<h1>Scan for WiFi access points</h1>
|
|
|
|
<button onclick="scan()" id="apScanStart">scan</button>
|
|
<a id="scanInfo">scanning...</a>
|
|
|
|
<p class="block bold" id="networksFound">Networks found: 0</p>
|
|
<p class="small">
|
|
MAC: <span id="apMAC"></span>
|
|
</p>
|
|
<br />
|
|
|
|
</div>
|
|
|
|
<table>
|
|
</table>
|
|
<p class="small" id="wpa_info">
|
|
<br />
|
|
WPA* = WPA/WPA2 auto mode
|
|
<br>
|
|
continuous scan: <button onclick="startConScan()" id="startStopScan">start</button>
|
|
</p>
|
|
|
|
</body>
|
|
<script>
|
|
var table = document.getElementsByTagName('table')[0];
|
|
var networkInfo = document.getElementById('networksFound');
|
|
var scanBtn = document.getElementById('apScanStart');
|
|
var scanInfo = document.getElementById('scanInfo');
|
|
var apMAC = document.getElementById('apMAC');
|
|
var startStopScan = document.getElementById('startStopScan');
|
|
var autoScan = false;
|
|
var canScan = true;
|
|
|
|
function toggleBtn(onoff){
|
|
if(onoff && !autoScan){
|
|
scanInfo.style.visibility = 'hidden';
|
|
scanBtn.style.visibility = 'visible';
|
|
}else{
|
|
scanInfo.style.visibility = 'visible';
|
|
scanBtn.style.visibility = 'hidden';
|
|
}
|
|
}
|
|
|
|
function compare(a,b) {
|
|
if (a.r > b.r) return -1;
|
|
if (a.r < b.r) return 1;
|
|
return 0;
|
|
}
|
|
|
|
function getEncryption(num){
|
|
if(num == 8) return "WPA*";
|
|
else if(num == 4) return "WPA2";
|
|
else if(num == 2) return "WPA";
|
|
else if(num == 7) return "none";
|
|
else if(num == 5) return "WEP";
|
|
}
|
|
|
|
function getResults(){
|
|
toggleBtn(true);
|
|
getResponse("APScanResults.json",function(responseText){
|
|
var res = JSON.parse(responseText);
|
|
res.aps = res.aps.sort(compare);
|
|
networkInfo.innerHTML = "Networks found: "+res.aps.length;
|
|
apMAC.innerHTML = "";
|
|
|
|
var tr = '';
|
|
if(res.aps.length > 0) tr += '<tr><th>Ch</th><th>SSID</th><th>RSSI</th><th>Encrypt.</th><th>Select</th></tr>';
|
|
|
|
for(var i=0;i<res.aps.length;i++){
|
|
|
|
if(res.aps[i].se == 1) tr += '<tr class="selected">';
|
|
else tr += '<tr>';
|
|
tr += '<td>'+res.aps[i].c+'</td>';
|
|
tr += '<td>'+res.aps[i].ss+'</td>';
|
|
tr += '<td>'+res.aps[i].r+' <meter value="'+res.aps[i].r+'" max="-30" min="-100" low="-80" high="-60" optimum="-50"></meter></td>';
|
|
tr += '<td>'+getEncryption(res.aps[i].e)+'</td>';
|
|
|
|
if(res.aps[i].se){
|
|
tr += '<td><button class="marginNull selectedBtn" onclick="select('+res.aps[i].i+')">deselect</button></td>';
|
|
apMAC.innerHTML = res.aps[i].m;
|
|
}
|
|
else tr += '<td><button class="marginNull" onclick="select('+res.aps[i].i+')">select</button></td>';
|
|
tr += '</tr>';
|
|
}
|
|
table.innerHTML = tr;
|
|
canScan = true;
|
|
});
|
|
}
|
|
|
|
function scan(){
|
|
canScan = false;
|
|
toggleBtn(false);
|
|
getResponse("APScan.json",function(responseText){
|
|
if(responseText == "true") getResults();
|
|
else alert("error");
|
|
toggleBtn(true);
|
|
});
|
|
}
|
|
|
|
function startConScan(){
|
|
if(autoScan){
|
|
autoScan = false;
|
|
startStopScan.innerHTML = "start";
|
|
toggleBtn(true);
|
|
}else{
|
|
autoScan = true;
|
|
startStopScan.innerHTML = "stop";
|
|
toggleBtn(false);
|
|
}
|
|
}
|
|
|
|
function select(num){
|
|
getResponse("APSelect.json?num="+num,function(responseText){
|
|
if(responseText == "true") getResults();
|
|
else alert("error");
|
|
});
|
|
}
|
|
|
|
function restartESP(){
|
|
getResponse("restartESP.json", function(responseText){
|
|
if(responseText == "true") getData();
|
|
else alert("error");
|
|
});
|
|
}
|
|
|
|
getResults();
|
|
|
|
setInterval(function(){
|
|
if(autoScan && canScan) scan();
|
|
},1000);
|
|
|
|
</script>
|
|
</html>
|