https://github.com/cakturk/go-netstat
A netstat implementation written in Go
https://github.com/cakturk/go-netstat
golang linux netstat socket tcp udp windows
Last synced: 24 days ago
JSON representation
A netstat implementation written in Go
- Host: GitHub
- URL: https://github.com/cakturk/go-netstat
- Owner: cakturk
- License: mit
- Created: 2018-09-27T18:11:42.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-26T06:19:41.000Z (almost 2 years ago)
- Last Synced: 2024-06-18T12:41:13.308Z (over 1 year ago)
- Topics: golang, linux, netstat, socket, tcp, udp, windows
- Language: Go
- Homepage:
- Size: 35.2 KB
- Stars: 230
- Watchers: 9
- Forks: 64
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
### Usage:
```
Usage of ./go-netstat:
-4 display only IPv4 sockets
-6 display only IPv6 sockets
-all
display both listening and non-listening sockets
-help
display this help screen
-lis
display only listening sockets
-res
lookup symbolic names for host addresses
-tcp
display TCP sockets
-udp
display UDP sockets
```
### Installation:
```
$ go get github.com/cakturk/go-netstat
```
### Using as a library
#### [Godoc](https://godoc.org/github.com/cakturk/go-netstat/netstat)
#### Getting the package
```
$ go get github.com/cakturk/go-netstat/netstat
```
```go
import (
"fmt"
"github.com/cakturk/go-netstat/netstat"
)
func displaySocks() error {
// UDP sockets
socks, err := netstat.UDPSocks(netstat.NoopFilter)
if err != nil {
return err
}
for _, e := range socks {
fmt.Printf("%v\n", e)
}
// TCP sockets
socks, err = netstat.TCPSocks(netstat.NoopFilter)
if err != nil {
return err
}
for _, e := range socks {
fmt.Printf("%v\n", e)
}
// get only listening TCP sockets
tabs, err := netstat.TCPSocks(func(s *netstat.SockTabEntry) bool {
return s.State == netstat.Listen
})
if err != nil {
return err
}
for _, e := range tabs {
fmt.Printf("%v\n", e)
}
// list all the TCP sockets in state FIN_WAIT_1 for your HTTP server
tabs, err = netstat.TCPSocks(func(s *netstat.SockTabEntry) bool {
return s.State == netstat.FinWait1 && s.LocalAddr.Port == 80
})
// error handling, etc.
return nil
}
```