-
在虚拟机上进行编译和执行,得到的结果源地址IP和目的地址IP是一样的,网络用的桥接模式。在user程序中进行对百度的ping操作。而且监控网口改成了我自己的网口。但是得到的就有我虚拟机的地址,socket源和目的地址都是。这是负责储存信息的结构体,在map中作为键key。这是给结构体中源和目标地址赋值的操作函数部分。这是map,值为包的数量和大小的结构体。这是user态的输出。像是端口,协议号,包数和数据大小都能正常输出,就是这个源地址和目的地址是一样的。然后我把源和目的地址改成定值1和2.输出就是1和2,感觉这是对的(没有ping百度,是连接的vscode,走22端口)然后我又去看了这个struct __sk_buff的偏移量,确实也是不一样的,源地址n1的偏移量26,目的地址n2的偏移量30,理应得到两个不同的内容才对。这俩load_word函数得到的理应是不同的值才对。但输出的确实是同一个值。但输出就是一样的,就怀疑是struct __sk_buff结构体里面填充的源和目的地址是一样的。这个程序就是源码目录下/samples/bpf/sockex3.我不能理解为什么,也许是我没理解到程序在做什么,求救大佬指导。
-
使用c语言ebpf和int _sockops(struct bpf_sock_ops *ctx)函数,map随意我是初学者,死活写不出来,求教大佬们。
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
即将直播
热门标签