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

1、构建过程中遇到的问题

问题1:

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

问题2:

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

如果解决上面的问题呢?

2、测试环境说明

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

Mac和centos都是x86环境。

3、测试用例目录结构

4、gopacket的测试用例

vim main.go

package mainimport ("fmt""github.com/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)}
}
5、构建方式

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

5.1、Dockerfile

vim Dockerfile

FROM golang:1.18-alpineRUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/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 /root
ADD main.go /rootENV CGO_ENABLED=1 GOOS=linux GOARCH=amd64
ENV GOPROXY https://goproxy.cnCOPY go.mod .
COPY go.sum .
RUN go mod downloadRUN go build -ldflags="-extldflags=-static -s -w" -o gopacket-main main.go

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

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

5.2、Makefile

参考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

5.3、构建

6、登录到centos上测试

有价值的参考文档
https://blog.51cto.com/u_12617333/5779129



已发表的技术专栏(订阅即可观看所有专栏,直接点击题目查看)
0  grpc-go、protobuf、multus-cni 技术专栏 总入口

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

2  零入门Kubernetes网络实战

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

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

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

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

  1. libpcap抓取数据包

    libpcap是数据包捕获函数库.该库提供的C函数接口可用于需要捕获经过网络接口数据包的系统开发上.libpcap提供的接口函数主要实现和封装了与数据包截获有关的过程.这个库为不同的平台提供了一致的编 ...

  2. 夜神模拟器抓取数据包

    学习记录 & 以及为需要的人节约时间 1.拿到burp 的证书文件, 2.使用kali 自带的openssl 对证书进行处理 openssl x509 -inform DER -in cace ...

  3. python怎么编写wireshark抓的包_使用Wireshark 抓取数据包

    Wireshark 是一个网络封包分析软件.网络封包分析软件的功能是获取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换. 一  ...

  4. wireshark设置端口镜像_H3C交换机端口镜像,抓取数据包wireshark实战

    端口镜像 system-vies     //进入配置模式 用户名:admin 密码:admin(默认) [H3C] dis cu int  查看所有端口的配置 [H3C] mirroring-gro ...

  5. 使用Wireshark抓取数据包

    1.通过wireshark官网下载:https://www.wireshark.org/ 2.设置捕获过滤器 打开wireshark,菜单–>捕获–>捕获过滤器(F),如图1 在捕获过滤器 ...

  6. python抓取数据包_python抓数据包

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 前言:数据科学越来越火了,网页是数据很大的一个来源. 最近很多人问怎么抓网页数据 ...

  7. Wireshark抓取数据包

    分析ICMP协议数据包 实验原理 ping是用来测试网络连通性的命令,一旦发出ping命令,主机会发出连续的测试数据包到网络中,在通常的情况下,主机会收到回应数据包,ping采用的是ICMP协议. 实 ...

  8. python抓取数据包_利用python-pypcap抓取带VLAN标签的数据包方法

    1.背景介绍 在采用通常的socket抓包方式下,操作系统会自动将收到包的VLAN信息剥离,导致上层应用收到的包不会含有VLAN标签信息.而libpcap虽然是基于socket实现抓包,但在收到数据包 ...

  9. 使用Charles 抓取数据包

    一.Charles抓取不到http请求 Charles 安装好,启动了之后,基于HTTP的数据抓取,一般情况下直接设置Proxy ->Proxy Settings->Port (8888) ...

  10. java抓取数据包查询12306余票信息

    最近项目比较闲,闲来无事,参照网上的代码实现了一下抓取12306数据包查询余票的代码, 需要的jar包需要全部包含到项目下,代码测试OK,具体代码如下: import java.io.IOExcept ...

最新文章

  1. Visual C# .NET 2003 语言的改变
  2. STM32库中几个重要的文件说明
  3. 【控制】《多智能体系统的动力学分析与设计》徐光辉老师-第3章-采样环境下带有领航者的二阶多智能体系统的一致性
  4. 网络安全04_互联网发展史_网线+网卡+协议栈_中继器_集线器_网桥_路由器_AC/AP_防火墙_流控_家庭网络_小型创业公司网络_园区网_政务网络_数据中心网络拓扑_电信网/互联网_Mac地址
  5. 监听Hierachy、Project等视图结构变化的事件
  6. Android风格ppt,Material Design风格的快手PPT
  7. tp3 默认模块 默认方法_您需要了解的有关默认方法的所有信息
  8. MyEclipse for Windows快捷键
  9. 电脑计算器的快捷键_牛!这份金蝶财务软件使用手册+超全快捷键汇总送你,财务收好...
  10. sqlisnull mysql_SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数
  11. python学习笔记之数据类型(二)
  12. oracle must be declared,oracle must be declared
  13. 电商系统设计之商品接口
  14. 快递公司type字典
  15. Windows Server AppFabric分布式缓存研究
  16. 企业的病毒,要及时清理
  17. 安装K3s 和 ingress-nginx
  18. 零基础能掌握seo知识吗
  19. Excel文件批量重命名
  20. java我的世界非正常退出_我的世界非正常退出怎么办???

热门文章

  1. Annoy最近邻检索技术之 “图片检索”
  2. 解决python安装某些包(Annoy)需要依赖VC++ 14.0的方案
  3. 豪情-2015年5月份书籍分享
  4. __iLINE__和__FILE__等内置宏的含义
  5. 【深入研究js事件】
  6. 2020.11.27哈尔滨理工大学软件与微电子学院程序设计竞赛(同步赛)
  7. ofbiz使用之---坑一
  8. mysql容器化后的缺点_沙场秋点兵——MySQL容器化性能测试对比
  9. 对于脏读,不可重复读,幻读的一点理解,看懂红字很关键
  10. AWD总结——熟悉环境