mirror of
https://github.com/kubeshark/kubeshark.git
synced 2026-05-21 16:43:23 +00:00
* Update .gitignore
* WIP
* WIP
* Update README.md, root.go, and 4 more files...
* Update README.md
* Update README.md
* Update root.go
* Update provider.go
* Update provider.go
* Update root.go, go.mod, and go.sum
* Update mizu.go
* Update go.sum and provider.go
* Update portForward.go, watch.go, and mizu.go
* Update README.md
* Update watch.go
* Update mizu.go
* Update mizu.go
* no message
* no message
* remove unused things and use external for object id (instead of copy)
* no message
* Update mizu.go
* Update go.mod, go.sum, and 2 more files...
* no message
* Update README.md, go.mod, and resolver.go
* Update README.md
* Update go.mod
* Update loader.go
* some refactor
* Update loader.go
* no message
* status to statusCode
* return data directly
* Traffic viewer
* cleaning
* css
* no message
* Clean warnings
* Makefile - first draft
* Update Makefile
* Update Makefile
* Update Makefile, README.md, and 4 more files...
* Add api build and clean to makefile (files restructure) (#9)
* no message
* add clean api command
* no message
* stating with web socket
* Add tap as a separate executable (#10)
* Added tap.
* Ignore build directories.
* Added tapper build to Makefile.
* Improvements (#12)
* no message
* no message
* Feature/makefile (#11)
* minor fixes
* makefile fixes - docker build
* minor fix in Makefile
Co-authored-by: Alex Haiut <alex@up9.com>
* Update Dockerfile, multi-runner.sh, and 31 more files...
* Update multi-runner.sh
* no message
* Update .dockerignore, Dockerfile, and 30 more files...
* Update cleaner.go, grpc_assembler.go, and 2 more files...
* start the pod with host network and privileged
* fix multi runner passive tapper command
* add HOST_MODE env var
* do not return true in the should tap function
* remove line in the end
* default value in api is input
fix description and pass the parameter in the multi runner script
* missing flag.parse
* no message
* fix image
* Create main.yml
* Update main.yml
* Update main.yml
* Update main.yml
* Update main.yml
* Update main.yml
* Update main.yml
* Update main.yml
* Update main.yml
* Update main.yml
* Update main.yml
* Update main.yml
* Update main.yml
* Update main.yml
* Update main.yml
* Update main.yml
* Update main.yml
* Update main.yml
* Update main.yml
* Update main.yml
* Small fixes - permission + har writing exception (#17)
* Select node by pod (#18)
* Select node by pod.
* Removed watch pod by regex. Irrelevant for now.
* Changed default image to develop:latest.
* Features/clifix (#19)
* makefile fixes - docker build
* readme update, CLI usage fix
* added chmod
Co-authored-by: Alex Haiut <alex@up9.com>
* meta information
* Only record traffic of the requested pod. Filtered by pod IP. (#21)
* fixed readme and reduced batch size to 5 (#22)
Co-authored-by: Alex Haiut <alex@up9.com>
* API and TAP in single process (#24)
* no message
* no message
* CLI make --pod required flag and faster api image build (#25)
* makefile fixes - docker build
* readme update, CLI usage fix
* added chmod
* typo
* run example incorreect in makefile
* no message
* no message
* no message
Co-authored-by: Alex Haiut <alex@up9.com>
* Reduce delay between tap and UI - Skip dump to file (#26)
* Pass HARs between tap and api via channel.
* Fixed make docker commad.
* Various fixes.
* Added .DS_Store to .gitignore.
* Parse flags in Mizu main instead of in tap_output.go.
* Use channel to pass HAR by default instead of files.
* Infinite scroll (#28)
* no message
* infinite scroll + new ws implementation
* no message
* scrolling top
* fetch button
* more Backend changes
* fix go mod and sum
* mire fixes against develop
* unused code
* small ui refactor
Co-authored-by: Roee Gadot <roee.gadot@up9.com>
* Fix gRPC crash, display gRPC as base64, display gRPC URL and status code (#27)
* Added Method (POST) and URL (emtpy) to gRPC requests.
* Removed quickfix that skips writing HTTP/2 to HAR.
* Use HTTP/2 body to fill out http.Request and htt.Response.
* Make sure that in HARs request.postData.mimeType and response.content.mimeType are application/grpc in case of grpc.
* Comment.
* Add URL and status code for gRPC.
* Don't assume http scheme.
* Use http.Header.Set instead of manually acccessing the underlaying map.
* General stats api fix (#29)
* refactor and validation
* Show gRPC as ASCII (#31)
* Moved try-catch up one block.
* Display grpc as ASCII.
* Better code in entries fetch endpoint (#30)
* no message
* no message
* Feature/UI/filters (#32)
* UI filters
* refactor
* Revert "refactor"
This reverts commit 70e7d4b6ac.
* remove recursive func
* CLI cleanup (#33)
* Moved cli root command to tap subcommand.
* tap subcommand works.
* Added view and fetch placeholders.
* Updated descriptions.
* Fixed indentation.
* Added versio subcommand.
* Removed version flag.
* gofmt.
* Changed pod from flag to arg.
* Commented out "all namespaces" flag.
* CLI cleanup 2 (#34)
* Renamed dashboard -> GUI/web interface.
* Commented out --quiet, removed unused config variables.
* Quiter output when calling unimplemented subcommands.
* Leftovers from PR #30 (#36)
Co-authored-by: up9-github <info@up9.com>
Co-authored-by: RamiBerm <54766858+RamiBerm@users.noreply.github.com>
Co-authored-by: Liraz Yehezkel <lirazy@up9.com>
Co-authored-by: Alex Haiut <alex@testr.io>
Co-authored-by: lirazyehezkel <61656597+lirazyehezkel@users.noreply.github.com>
Co-authored-by: Alex Haiut <alex@up9.com>
Co-authored-by: nimrod-up9 <59927337+nimrod-up9@users.noreply.github.com>
Co-authored-by: RamiBerm <rami.berman@up9.com>
Co-authored-by: Alex Haiut <alex.haiut@gmail.com>
63 lines
1.3 KiB
Go
63 lines
1.3 KiB
Go
package tap
|
|
|
|
import (
|
|
"net"
|
|
"strings"
|
|
)
|
|
|
|
var privateIPBlocks []*net.IPNet
|
|
|
|
func init() {
|
|
initPrivateIPBlocks()
|
|
}
|
|
|
|
// Get this host ipv4 and ipv6 addresses on all interfaces
|
|
func getLocalhostIPs() ([]string, error) {
|
|
addrMasks, err := net.InterfaceAddrs()
|
|
if err != nil {
|
|
// TODO: return error, log error
|
|
return nil, err
|
|
}
|
|
|
|
myIPs := make([]string, len(addrMasks))
|
|
for ii, addr := range addrMasks {
|
|
myIPs[ii] = strings.Split(addr.String(), "/")[0]
|
|
}
|
|
|
|
return myIPs, nil
|
|
}
|
|
|
|
func isPrivateIP(ipStr string) bool {
|
|
ip := net.ParseIP(ipStr)
|
|
if ip.IsLoopback() || ip.IsLinkLocalUnicast() || ip.IsLinkLocalMulticast() {
|
|
return true
|
|
}
|
|
|
|
for _, block := range privateIPBlocks {
|
|
if block.Contains(ip) {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
func initPrivateIPBlocks() {
|
|
for _, cidr := range []string{
|
|
"127.0.0.0/8", // IPv4 loopback
|
|
"10.0.0.0/8", // RFC1918
|
|
"172.16.0.0/12", // RFC1918
|
|
"192.168.0.0/16", // RFC1918
|
|
"169.254.0.0/16", // RFC3927 link-local
|
|
"::1/128", // IPv6 loopback
|
|
"fe80::/10", // IPv6 link-local
|
|
"fc00::/7", // IPv6 unique local addr
|
|
} {
|
|
_, block, err := net.ParseCIDR(cidr)
|
|
if err != nil {
|
|
Error("Private-IP-Block-Parse", "parse error on %q: %v", cidr, err)
|
|
} else {
|
|
privateIPBlocks = append(privateIPBlocks, block)
|
|
}
|
|
}
|
|
}
|