失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 如何构建编译gopacket包的测试用例?(gopacket抓取数据包 类似于tcpdump Wireshark)

如何构建编译gopacket包的测试用例?(gopacket抓取数据包 类似于tcpdump Wireshark)

时间:2022-03-10 09:22:01

相关推荐

如何构建编译gopacket包的测试用例?(gopacket抓取数据包 类似于tcpdump Wireshark)

本篇文章介绍一下,如何构建gopacket测试用例

问题1:

-bash: ./gopacket-main: /lib/ld-musl-x86_64.so.1: bad ELF interpreter: No such file or directory

问题2:

#14 3.150 # /google/gopacket/pcap#14 3.150 /go/pkg/mod//google/gopacket@v1.1.19/pcap/pcap.go:30:22: undefined: pcapErrorNotActivated#14 3.150 /go/pkg/mod//google/gopacket@v1.1.19/pcap/pcap.go:52:17: undefined: pcapTPtr#14 3.150 /go/pkg/mod//google/gopacket@v1.1.19/pcap/pcap.go:64:10: undefined: pcapPkthdr#14 3.150 /go/pkg/mod//google/gopacket@v1.1.19/pcap/pcap.go:103:6: undefined: pcapBpfProgram#14 3.150 /go/pkg/mod//google/gopacket@v1.1.19/pcap/pcap.go:110:7: undefined: pcapPkthdr#14 3.150 /go/pkg/mod//google/gopacket@v1.1.19/pcap/pcap.go:268:33: undefined: pcapErrorActivated#14 3.150 /go/pkg/mod//google/gopacket@v1.1.19/pcap/pcap.go:269:33: undefined: pcapWarningPromisc#14 3.150 /go/pkg/mod//google/gopacket@v1.1.19/pcap/pcap.go:270:33: undefined: pcapErrorNoSuchDevice#14 3.150 /go/pkg/mod//google/gopacket@v1.1.19/pcap/pcap.go:271:33: undefined: pcapErrorDenied#14 3.150 /go/pkg/mod//google/gopacket@v1.1.19/pcap/pcap.go:748:14: undefined: pcapTPtr#14 3.150 /go/pkg/mod//google/gopacket@v1.1.19/pcap/pcap.go:271:33: too many errors

如果解决上面的问题呢?

本次构建是在Mac环境下构建,构建的二进制文件在centos7.5环境下使用。

Mac和centos都是x86环境。

vim main.go

package mainimport ("fmt""/google/gopacket/pcap")func main() {devs, err := pcap.FindAllDevs()if err != nil {fmt.Errorf(err.Error())}for _, dev := range devs {fmt.Printf("----dev.Name:%v\n", dev.Name)}}

通过docker的方式进行构建,不会影响本地环境

vim Dockerfile

FROM golang:1.18-alpineRUN sed -i 's/dl-//g' /etc/apk/repositoriesRUN apk add --no-cache \libpcap-dev \g++ \curl \build-base \binutils-gold \bash \clang \llvm \libbpf-dev \linux-headers \net-tools \vimWORKDIR /rootADD main.go /rootENV CGO_ENABLED=1 GOOS=linux GOARCH=amd64ENV GOPROXY COPY go.mod .COPY go.sum .RUN go mod downloadRUN go build -ldflags="-extldflags=-static -s -w" -o gopacket-main main.go

其中, libpcap-dev必须安装;其他 未测试。

文章一开始的问题,是如何引起的?

参考Makefile的内容

vim Makefile

build:docker build -t golang:1.18-alpine-libpcap .docker:docker run --rm -v /xxxxxxx/data:/app golang:1.18-alpine-libpcap cp gopacket-main /appscp:scp data/gopacket-main root@10.211.55.130:/rootall:make buildmake dockermake scp

有价值的参考文档

/u_12617333/5779129

已发表的技术专栏(订阅即可观看所有专栏,直接点击题目查看)

0grpc-go、protobuf、multus-cni 技术专栏 总入口

1grpc-go 源码剖析与实战  文章目录

2零入门Kubernetes网络实战

3Protobuf介绍与实战 图文专栏  文章目录

4multus-cni   文章目录(k8s多网络实现方案)

5grpc、oauth2、openssl、双向认证、单向认证等专栏文章目录

如果觉得《如何构建编译gopacket包的测试用例?(gopacket抓取数据包 类似于tcpdump Wireshark)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。