亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

檢測不同類型網絡錯誤的便攜式方法

檢測不同類型網絡錯誤的便攜式方法

Go
慕標琳琳 2021-07-29 17:06:18
我想確定網絡級別發生了什么樣的錯誤。我發現的唯一方法是使用正則表達式檢查錯誤消息,但現在我發現這些消息可以使用不同的語言(取決于操作系統配置),這使得正則表達式很難檢測到。有沒有更好的方法來做到這一點?package mainimport (  "github.com/miekg/dns"  "net"  "regexp")func main() {  var c dns.Client  m := new(dns.Msg)  m.SetQuestion("3com.br.", dns.TypeSOA)  _, _, err := c.Exchange(m, "ns1.3com.com.:53")  checkErr(err)  m.SetQuestion("example.com.", dns.TypeSOA)  _, _, err = c.Exchange(m, "idontexist.br.:53")  checkErr(err)  m.SetQuestion("acasadocartaocuritiba.blog.br.", dns.TypeSOA)  _, _, err = c.Exchange(m, "ns7.storedns22.in.:53")  checkErr(err)}func checkErr(err error) {  if err == nil {    println("Ok")  } else if netErr, ok := err.(net.Error); ok && netErr.Timeout() {    println("Timeout")  } else if match, _ := regexp.MatchString(".*lookup.*", err.Error()); match {    println("Unknown host")  } else if match, _ := regexp.MatchString(".*connection refused.*", err.Error()); match {    println("Connection refused")  } else {    println("Other error")  }}結果:$ go run neterrors.goTimeoutUnknown hostConnection refused我在使用葡萄牙語作為默認語言的 Windows 操作系統中測試系統時發現了這個問題。
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號