Golang编写判断IP是否能够Ping通

这篇博客介绍了如何利用Golang编程语言编写代码,来判断一个IP地址是否可以成功地被Ping通。通过示例代码,读者将学习到Golang在网络操作方面的应用。
摘要由CSDN通过智能技术生成
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值