1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-04 12:52:28 +08:00

feat: add IsPingConnected and IsTelnetConnected

This commit is contained in:
dudaodong
2023-04-19 11:13:21 +08:00
parent 2cdbba56a4
commit 9f68620b37
2 changed files with 50 additions and 1 deletions

View File

@@ -10,7 +10,9 @@ import (
"net/http" "net/http"
"net/url" "net/url"
"os" "os"
"os/exec"
"strings" "strings"
"time"
"github.com/duke-git/lancet/v2/fileutil" "github.com/duke-git/lancet/v2/fileutil"
) )
@@ -245,3 +247,30 @@ func DownloadFile(filepath string, url string) error {
return err return err
} }
// IsPingConnected checks if can ping specified host or not.
// Play: todo
func IsPingConnected(host string) bool {
cmd := exec.Command("ping", host, "-c", "1", "-W", "6")
err := cmd.Run()
if err != nil {
return false
}
return true
}
// IsTelnetConnected checks if can telnet specified host or not.
// only support two args: args[0] is port, args[1] is user
// Play: todo
func IsTelnetConnected(host string, port string) bool {
adder := host + ":" + port
conn, err := net.DialTimeout("tcp", adder, 5*time.Second)
if err != nil {
return false
}
defer conn.Close()
return true
}

View File

@@ -98,7 +98,7 @@ func TestGetMacAddrs(t *testing.T) {
} }
func TestEncodeUrl(t *testing.T) { func TestEncodeUrl(t *testing.T) {
assert := internal.NewAssert(t, "TestIsInternalIP") assert := internal.NewAssert(t, "TestEncodeUrl")
urlAddr := "http://www.lancet.com?a=1&b=[2]" urlAddr := "http://www.lancet.com?a=1&b=[2]"
encodedUrl, err := EncodeUrl(urlAddr) encodedUrl, err := EncodeUrl(urlAddr)
@@ -109,3 +109,23 @@ func TestEncodeUrl(t *testing.T) {
expected := "http://www.lancet.com?a=1&b=%5B2%5D" expected := "http://www.lancet.com?a=1&b=%5B2%5D"
assert.Equal(expected, encodedUrl) assert.Equal(expected, encodedUrl)
} }
func TestIsPingConnected(t *testing.T) {
assert := internal.NewAssert(t, "TestIsPingConnected")
result1 := IsPingConnected("www.baidu.com")
assert.Equal(true, result1)
result2 := IsPingConnected("www.!@#&&&.com")
assert.Equal(false, result2)
}
func TestTelnetConnected(t *testing.T) {
assert := internal.NewAssert(t, "TestTelnetConnected")
result1 := IsTelnetConnected("www.baidu.com", "80")
assert.Equal(true, result1)
result2 := IsTelnetConnected("www.baidu.com", "123")
assert.Equal(false, result2)
}