32 lines
518 B
Go
32 lines
518 B
Go
package scan
|
|
|
|
import (
|
|
"net"
|
|
"strconv"
|
|
)
|
|
|
|
func ScanPort(port int) bool {
|
|
ln, err := net.Listen("tcp", ":"+strconv.Itoa(port))
|
|
if err != nil {
|
|
return true
|
|
}
|
|
defer ln.Close()
|
|
return false
|
|
}
|
|
|
|
func ScanUDPPort(port int) bool {
|
|
ln, err := net.ListenUDP("udp", &net.UDPAddr{IP: net.IPv4(127, 0, 0, 1), Port: port})
|
|
if err != nil {
|
|
return true
|
|
}
|
|
defer ln.Close()
|
|
return false
|
|
}
|
|
|
|
func ScanPortWithProto(port int, proto string) bool {
|
|
if proto == "udp" {
|
|
return ScanUDPPort(port)
|
|
}
|
|
return ScanPort(port)
|
|
}
|