GPT答: |
7i24.cn
|
以下是一个使用Go语言编写的可以探测服务器状态的逻辑代码,并带有前端页面展示:
```go
package main
import (
"fmt"
"log"
"net/http"
)
func checkServerStatus(url string) bool {
resp, err := http.Get(url)
if err != nil {
log.Println(err)
return false
}
defer resp.Body.Close()
if resp.StatusCode == http.StatusOK {
return true
}
return false
}
func serverStatusHandler(w http.ResponseWriter, r *http.Request) {
url := "http://example.com" // 替换为你要检测的服务器地址
status := checkServerStatus(url)
fmt.Fprintf(w, "<h1>Server Status</h1>")
if status {
fmt.Fprintf(w, "<p>The server is <strong>online</strong>.</p>")
} else {
fmt.Fprintf(w, "<p>The server is <strong>offline</strong>.</p>")
}
}
func main() {
http.HandleFunc("/", serverStatusHandler)
log.Fatal(http.ListenAndServe(":8080", nil))
}
```
在上述代码中,`checkServerStatus`函数用于发送HTTP GET请求并检查响应状态码是否为200。如果状态码为200,则返回true,表示服务器在线;否则返回false,表示服务器离线。
`serverStatusHandler`函数是HTTP请求处理函数,它会调用`checkServerStatus`函数来获取服务器状态,并根据状态在前端页面展示不同的信息。
最后,在main函数中注册了路由处理器,并监听8080端口启动了一个HTTP服务。当访问根路径时,会调用`serverStatusHandler`来处理请求并展示服务器状态信息。
你可以将上述代码保存为一个名为`main.go`的文件,并使用命令`go run main.go`来运行该程序。然后在浏览器中访问http://localhost:8080,即可看到服务器状态信息的展示页面。
|