网络相关
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
695 B

3 years ago
  1. package network
  2. import (
  3. "os/exec"
  4. "runtime"
  5. "strings"
  6. )
  7. func Ping(ip string) bool {
  8. if ip == "" {
  9. return false
  10. }
  11. var cmd *exec.Cmd
  12. if strings.ToLower(runtime.GOOS) == "linux" {
  13. cmd = exec.Command("ping", ip, "-c", "1")
  14. } else {
  15. cmd = exec.Command("ping", ip, "-n", "1")
  16. }
  17. out, err := cmd.Output()
  18. cmd.Run()
  19. str := strings.ToLower(string(out))
  20. if err == nil && strings.Contains(str, "ttl") {
  21. return true
  22. }
  23. return false
  24. }
  25. func CanConnect(ip, port string) bool {
  26. cmd := exec.Command("telnet", ip, port)
  27. out, _ := cmd.Output()
  28. cmd.Run()
  29. s := string(out)
  30. if strings.Contains(s, "Connected") && strings.Contains(s, "Escape") {
  31. return true
  32. }
  33. return false
  34. }