mirror of
https://github.com/bettercap/bettercap
synced 2025-08-14 02:36:57 -07:00
new: aliases are now centralized and can be used for any type of device (closes #504)
This commit is contained in:
parent
96853e663b
commit
7e7f2ef645
11 changed files with 115 additions and 51 deletions
|
@ -271,13 +271,55 @@ func (s *Session) shHandler(args []string, sess *Session) error {
|
|||
return err
|
||||
}
|
||||
|
||||
func normalizeMac(mac string) string {
|
||||
var parts []string
|
||||
if strings.ContainsRune(mac, '-') {
|
||||
parts = strings.Split(mac, "-")
|
||||
} else {
|
||||
parts = strings.Split(mac, ":")
|
||||
}
|
||||
|
||||
for i, p := range parts {
|
||||
if len(p) < 2 {
|
||||
parts[i] = "0" + p
|
||||
}
|
||||
}
|
||||
return strings.ToLower(strings.Join(parts, ":"))
|
||||
}
|
||||
|
||||
func (s *Session) propagateAlias(mac, alias string) {
|
||||
mac = normalizeMac(mac)
|
||||
|
||||
s.Aliases.Set(mac, alias)
|
||||
|
||||
if dev, found := s.BLE.Get(mac); found {
|
||||
dev.Alias = alias
|
||||
}
|
||||
|
||||
if dev, found := s.HID.Get(mac); found {
|
||||
dev.Alias = alias
|
||||
}
|
||||
|
||||
if ap, found := s.WiFi.Get(mac); found {
|
||||
ap.Alias = alias
|
||||
}
|
||||
|
||||
if sta, found := s.WiFi.GetClient(mac); found {
|
||||
sta.Alias = alias
|
||||
}
|
||||
|
||||
if host, found := s.Lan.Get(mac); found {
|
||||
host.Alias = alias
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Session) aliasHandler(args []string, sess *Session) error {
|
||||
mac := args[0]
|
||||
alias := str.Trim(args[1])
|
||||
if alias == "\"\"" || alias == "''" {
|
||||
alias = ""
|
||||
}
|
||||
s.Lan.SetAliasFor(mac, alias)
|
||||
s.propagateAlias(mac, alias)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -383,7 +425,7 @@ func (s *Session) registerCoreHandlers() {
|
|||
readline.PcItem("!"))
|
||||
|
||||
s.addHandler(NewCommandHandler("alias MAC NAME",
|
||||
"^alias\\s+([a-fA-F0-9:]{17})\\s*(.*)",
|
||||
"^alias\\s+([a-fA-F0-9:]{14,17})\\s*(.*)",
|
||||
"Assign an alias to a given endpoint given its MAC address.",
|
||||
s.aliasHandler),
|
||||
readline.PcItem("alias", readline.PcItemDynamic(func(prefix string) []string {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue