package main import ( "bytes" "encoding/binary" "fmt" "log" "net" "time" ) var icmp ICMP type ICMP struct { Type uint8 Code uint8 Checksum uint16 Identifier uint16 SequenceNum uint16 } func main() { bool := isping("0.0.0.0") fmt.Println("结果为:", bool) } func isping(ip string) bool { //开始填充数据包 icmp.Type = 8 //8->echo message 0->reply message icmp.Code = 0 icmp.Checksum = 0 icmp.Identifier = 0 icmp.SequenceNum = 0 recvBuf := make([]byte, 32) var buffer bytes.Buffer //先在buffer中写入icmp数据报求去校验和 binary.Write(&buffer, binary.BigEndian, icmp) icmp.Checksum = CheckSum(buffer.Bytes()) //然后清空buffer并把求完校验和的icmp数据报写入其中准备发送 buffer.Reset() binary.Write(&buffer, binary.BigEndian, icmp) Time, _ := time.ParseDuration("2s") co
Golang编写判断IP是否能够Ping通
最新推荐文章于 2024-07-08 18:07:38 发布
这篇博客介绍了如何利用Golang编程语言编写代码,来判断一个IP地址是否可以成功地被Ping通。通过示例代码,读者将学习到Golang在网络操作方面的应用。
摘要由CSDN通过智能技术生成