mirror of
https://github.com/bettercap/bettercap
synced 2025-07-06 13:02:12 -07:00
new: realtime network stats can now be used in the prompt
This commit is contained in:
parent
e7da2d4287
commit
75b423ab2d
7 changed files with 31 additions and 4 deletions
1
Makefile
1
Makefile
|
@ -45,6 +45,7 @@ deps:
|
||||||
@go get github.com/rogpeppe/go-charset/charset
|
@go get github.com/rogpeppe/go-charset/charset
|
||||||
@go get github.com/chzyer/readline
|
@go get github.com/chzyer/readline
|
||||||
@go get github.com/robertkrimen/otto
|
@go get github.com/robertkrimen/otto
|
||||||
|
@go get github.com/dustin/go-humanize
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@rm -rf $(TARGET) net/oui_compiled.go
|
@rm -rf $(TARGET) net/oui_compiled.go
|
||||||
|
|
1
caplets/test-prompt-stats.cap
Normal file
1
caplets/test-prompt-stats.cap
Normal file
|
@ -0,0 +1 @@
|
||||||
|
set $ {by}{fb}SENT:{fw}{net.sent.human} {fb}RECV:{fw}{net.received.human} {fb}PKTS:{fw}{net.packets} {r}ERR:{net.errors}{reset} {bold}» {reset}
|
|
@ -91,7 +91,7 @@ func (s *EventsStream) Start() error {
|
||||||
fmt.Printf("[%s] [%s] %v\n", tm, core.Green(e.Tag), e.Data)
|
fmt.Printf("[%s] [%s] %v\n", tm, core.Green(e.Tag), e.Data)
|
||||||
}
|
}
|
||||||
|
|
||||||
s.Session.Input.Refresh()
|
s.Session.Refresh()
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ func (s *ProxyScript) defineBuiltins() error {
|
||||||
fmt.Printf("%s", v.String())
|
fmt.Printf("%s", v.String())
|
||||||
}
|
}
|
||||||
fmt.Println()
|
fmt.Println()
|
||||||
s.sess.Input.Refresh()
|
s.sess.Refresh()
|
||||||
|
|
||||||
return otto.Value{}
|
return otto.Value{}
|
||||||
})
|
})
|
||||||
|
|
|
@ -32,5 +32,5 @@ func NewSnifferEvent(t time.Time, proto string, src string, dst string, data Sni
|
||||||
func (e SnifferEvent) Push() {
|
func (e SnifferEvent) Push() {
|
||||||
fmt.Printf("%s\n", e.Message)
|
fmt.Printf("%s\n", e.Message)
|
||||||
session.I.Events.Add("net.sniff.leak."+e.Protocol, e.Data)
|
session.I.Events.Add("net.sniff.leak."+e.Protocol, e.Data)
|
||||||
session.I.Input.Refresh()
|
session.I.Refresh()
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
package session
|
package session
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/evilsocket/bettercap-ng/core"
|
"github.com/evilsocket/bettercap-ng/core"
|
||||||
|
|
||||||
|
"github.com/dustin/go-humanize"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -33,6 +36,24 @@ var PromptCallbacks = map[string]func(s *Session) string{
|
||||||
"{cidr}": func(s *Session) string {
|
"{cidr}": func(s *Session) string {
|
||||||
return s.Interface.CIDR()
|
return s.Interface.CIDR()
|
||||||
},
|
},
|
||||||
|
"{net.sent}": func(s *Session) string {
|
||||||
|
return fmt.Sprintf("%d", s.Queue.Sent)
|
||||||
|
},
|
||||||
|
"{net.sent.human}": func(s *Session) string {
|
||||||
|
return humanize.Bytes(s.Queue.Sent)
|
||||||
|
},
|
||||||
|
"{net.received}": func(s *Session) string {
|
||||||
|
return fmt.Sprintf("%d", s.Queue.Received)
|
||||||
|
},
|
||||||
|
"{net.received.human}": func(s *Session) string {
|
||||||
|
return humanize.Bytes(s.Queue.Received)
|
||||||
|
},
|
||||||
|
"{net.packets}": func(s *Session) string {
|
||||||
|
return fmt.Sprintf("%d", s.Queue.PktReceived)
|
||||||
|
},
|
||||||
|
"{net.errors}": func(s *Session) string {
|
||||||
|
return fmt.Sprintf("%d", s.Queue.Errors)
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
var envRe = regexp.MustCompile("{env\\.(.+)}")
|
var envRe = regexp.MustCompile("{env\\.(.+)}")
|
||||||
|
|
|
@ -253,9 +253,13 @@ func (s *Session) Start() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Session) ReadLine() (string, error) {
|
func (s *Session) Refresh() {
|
||||||
s.Input.SetPrompt(s.Prompt.Render(s))
|
s.Input.SetPrompt(s.Prompt.Render(s))
|
||||||
s.Input.Refresh()
|
s.Input.Refresh()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Session) ReadLine() (string, error) {
|
||||||
|
s.Refresh()
|
||||||
return s.Input.Readline()
|
return s.Input.Readline()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue