以下是一个简单的 Golang 程序,用于抓取 UDP 数据包,监听端口 67 和 68,并输出收到的数据包信息:

package main

import (
    "fmt"
    "net"
)

func main() {
    // 监听 UDP 端口 67 和 68
    conn67, err := net.ListenPacket('udp', ':67')
    if err != nil {
        fmt.Println('Error listening on port 67:', err)
        return
    }
    defer conn67.Close()

    conn68, err := net.ListenPacket('udp', ':68')
    if err != nil {
        fmt.Println('Error listening on port 68:', err)
        return
    }
    defer conn68.Close()

    // 开始循环读取数据包
    for {
        buf := make([]byte, 1024)
        n, addr, err := conn67.ReadFrom(buf)
        if err != nil {
            fmt.Println('Error reading from port 67:', err)
            continue
        }
        fmt.Printf('Received packet from %v: %s
', addr, string(buf[:n]))

        n, addr, err = conn68.ReadFrom(buf)
        if err != nil {
            fmt.Println('Error reading from port 68:', err)
            continue
        }
        fmt.Printf('Received packet from %v: %s
', addr, string(buf[:n]))
    }
}

运行以上程序后,它将不断监听 UDP 端口 67 和 68,并打印出收到的数据包信息。

Golang UDP 抓包程序:监听端口 67 和 68

原文地址: https://www.cveoy.top/t/topic/luYK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录