mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
60 lines
1019 B
Go
60 lines
1019 B
Go
package security
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os/exec"
|
|
"strings"
|
|
)
|
|
|
|
const osxFirewallCmd = "/usr/libexec/ApplicationFirewall/socketfilterfw"
|
|
|
|
func FirewallState() string {
|
|
cmd := exec.Command(osxFirewallCmd, "--getglobalstate")
|
|
|
|
stdout, err := cmd.StdoutPipe()
|
|
if err != nil {
|
|
return firewallIcon("err")
|
|
}
|
|
|
|
if err := cmd.Start(); err != nil {
|
|
return firewallIcon("err")
|
|
}
|
|
|
|
var str string
|
|
if b, err := ioutil.ReadAll(stdout); err == nil {
|
|
str += string(b)
|
|
}
|
|
|
|
return firewallIcon(str)
|
|
}
|
|
|
|
func FirewallStealthState() string {
|
|
cmd := exec.Command(osxFirewallCmd, "--getstealthmode")
|
|
|
|
stdout, err := cmd.StdoutPipe()
|
|
if err != nil {
|
|
return firewallIcon("err")
|
|
}
|
|
|
|
if err := cmd.Start(); err != nil {
|
|
return firewallIcon("err")
|
|
}
|
|
|
|
var str string
|
|
if b, err := ioutil.ReadAll(stdout); err == nil {
|
|
str += string(b)
|
|
}
|
|
|
|
return firewallIcon(str)
|
|
}
|
|
|
|
func firewallIcon(str string) string {
|
|
icon := "[red]off[white]"
|
|
|
|
if strings.Contains(str, "enabled") {
|
|
icon = "[green]on[white]"
|
|
}
|
|
|
|
return icon
|
|
}
|