mirror of
https://github.com/bettercap/bettercap.git
synced 2024-11-08 06:30:13 -08:00
101 lines
2.8 KiB
Go
101 lines
2.8 KiB
Go
package wifi
|
|
|
|
import (
|
|
"github.com/bettercap/bettercap/v2/network"
|
|
"github.com/bettercap/bettercap/v2/session"
|
|
)
|
|
|
|
type ByRSSISorter []*network.Station
|
|
|
|
func (a ByRSSISorter) Len() int { return len(a) }
|
|
func (a ByRSSISorter) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
|
func (a ByRSSISorter) Less(i, j int) bool {
|
|
if a[i].RSSI == a[j].RSSI {
|
|
return a[i].HwAddress < a[j].HwAddress
|
|
}
|
|
return a[i].RSSI > a[j].RSSI
|
|
}
|
|
|
|
type ByChannelSorter []*network.Station
|
|
|
|
func (a ByChannelSorter) Len() int { return len(a) }
|
|
func (a ByChannelSorter) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
|
func (a ByChannelSorter) Less(i, j int) bool {
|
|
return a[i].Frequency < a[j].Frequency
|
|
}
|
|
|
|
type ByEncryptionSorter []*network.Station
|
|
|
|
func (a ByEncryptionSorter) Len() int { return len(a) }
|
|
func (a ByEncryptionSorter) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
|
func (a ByEncryptionSorter) Less(i, j int) bool {
|
|
if a[i].Encryption == a[j].Encryption {
|
|
return a[i].HwAddress < a[j].HwAddress
|
|
}
|
|
return a[i].Encryption < a[j].Encryption
|
|
}
|
|
|
|
type ByBssidSorter []*network.Station
|
|
|
|
func (a ByBssidSorter) Len() int { return len(a) }
|
|
func (a ByBssidSorter) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
|
func (a ByBssidSorter) Less(i, j int) bool {
|
|
return a[i].BSSID() < a[j].BSSID()
|
|
}
|
|
|
|
type ByEssidSorter []*network.Station
|
|
|
|
func (a ByEssidSorter) Len() int { return len(a) }
|
|
func (a ByEssidSorter) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
|
func (a ByEssidSorter) Less(i, j int) bool {
|
|
if a[i].ESSID() == a[j].ESSID() {
|
|
return a[i].HwAddress < a[j].HwAddress
|
|
}
|
|
return a[i].ESSID() < a[j].ESSID()
|
|
}
|
|
|
|
type ByWiFiSeenSorter []*network.Station
|
|
|
|
func (a ByWiFiSeenSorter) Len() int { return len(a) }
|
|
func (a ByWiFiSeenSorter) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
|
func (a ByWiFiSeenSorter) Less(i, j int) bool {
|
|
return a[i].LastSeen.Before(a[j].LastSeen)
|
|
}
|
|
|
|
type ByWiFiSentSorter []*network.Station
|
|
|
|
func (a ByWiFiSentSorter) Len() int { return len(a) }
|
|
func (a ByWiFiSentSorter) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
|
func (a ByWiFiSentSorter) Less(i, j int) bool {
|
|
return a[i].Sent < a[j].Sent
|
|
}
|
|
|
|
type ByWiFiRcvdSorter []*network.Station
|
|
|
|
func (a ByWiFiRcvdSorter) Len() int { return len(a) }
|
|
func (a ByWiFiRcvdSorter) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
|
func (a ByWiFiRcvdSorter) Less(i, j int) bool {
|
|
return a[i].Received < a[j].Received
|
|
}
|
|
|
|
type ByClientsSorter []*network.Station
|
|
|
|
func (a ByClientsSorter) Len() int { return len(a) }
|
|
func (a ByClientsSorter) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
|
func (a ByClientsSorter) Less(i, j int) bool {
|
|
left := 0
|
|
right := 0
|
|
|
|
if ap, found := session.I.WiFi.Get(a[i].HwAddress); found {
|
|
left = ap.NumClients()
|
|
}
|
|
if ap, found := session.I.WiFi.Get(a[j].HwAddress); found {
|
|
right = ap.NumClients()
|
|
}
|
|
|
|
if left == right {
|
|
return a[i].HwAddress < a[j].HwAddress
|
|
}
|
|
return left < right
|
|
}
|