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/chzyer/readline
|
||||
@go get github.com/robertkrimen/otto
|
||||
@go get github.com/dustin/go-humanize
|
||||
|
||||
clean:
|
||||
@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)
|
||||
}
|
||||
|
||||
s.Session.Input.Refresh()
|
||||
s.Session.Refresh()
|
||||
}
|
||||
break
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ func (s *ProxyScript) defineBuiltins() error {
|
|||
fmt.Printf("%s", v.String())
|
||||
}
|
||||
fmt.Println()
|
||||
s.sess.Input.Refresh()
|
||||
s.sess.Refresh()
|
||||
|
||||
return otto.Value{}
|
||||
})
|
||||
|
|
|
@ -32,5 +32,5 @@ func NewSnifferEvent(t time.Time, proto string, src string, dst string, data Sni
|
|||
func (e SnifferEvent) Push() {
|
||||
fmt.Printf("%s\n", e.Message)
|
||||
session.I.Events.Add("net.sniff.leak."+e.Protocol, e.Data)
|
||||
session.I.Input.Refresh()
|
||||
session.I.Refresh()
|
||||
}
|
||||
|
|
|
@ -1,10 +1,13 @@
|
|||
package session
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"regexp"
|
||||
"strings"
|
||||
|
||||
"github.com/evilsocket/bettercap-ng/core"
|
||||
|
||||
"github.com/dustin/go-humanize"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -33,6 +36,24 @@ var PromptCallbacks = map[string]func(s *Session) string{
|
|||
"{cidr}": func(s *Session) string {
|
||||
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\\.(.+)}")
|
||||
|
|
|
@ -253,9 +253,13 @@ func (s *Session) Start() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (s *Session) ReadLine() (string, error) {
|
||||
func (s *Session) Refresh() {
|
||||
s.Input.SetPrompt(s.Prompt.Render(s))
|
||||
s.Input.Refresh()
|
||||
}
|
||||
|
||||
func (s *Session) ReadLine() (string, error) {
|
||||
s.Refresh()
|
||||
return s.Input.Readline()
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue