Created
April 30, 2015 13:51
-
-
Save ekoecho/c00dbc48b883799e76f7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"log" | |
"net" | |
) | |
func main() { | |
var status string | |
conn, err := net.Dial("tcp", "127.0.0.1:80") | |
if err != nil { | |
log.Println("Connection error:", err) | |
status = "Unreachable" | |
} else { | |
status = "Online" | |
defer conn.Close() | |
} | |
log.Println(status) | |
} |
like
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This check will only work if someone is accepting connections on that port. If the port is taken but the holder does not accept connections the port is certainly unreachable, but not available for use.
You might want to use net.ListenTCP and try to bind to the address. This will fail when the port is already taken. This naturally only works for local checks.