sp: 源端口号返回值:
dp:目的端口号
len:udp 包总长度
sum:校验和,设为 0,libnet 自动填充
payload:负载,为给应用程序发送的文本内容,没有内容时可设置为 NULL
payload_s:负载长度,给应用程序发送文本内容的长度,或为 0
l:libnet_init() 返回的 libnet * 指针
ptag:协议标记,第一次组新的发送包时,这里写 0,同一个应用程序,下一次再组包时,这个位置的值写此函数的返回值 。
成功:协议标记libnet_ptag_t libnet_build_tcp(
失败:-1
u_int16_t sp, u_int16_t dp,功能:
u_int32_t seq, u_int32_t ack,
u_int8_t control, u_int16_t win
u_int16_t sum, u_int16_t urg,
u_int16_t len, u_int8_t *payload,
u_int32_t payload_s, libnet_t *l,
libnet_ptag_t ptag );
构造 tcp 数据包参数:
sp:源端口号返回值:
dp:目的端口号
seq:序号
ack:ack 标记
control:控制标记
win:窗口大小
sum:校验和,设为 0,libnet 自动填充
urg:紧急指针
len:tcp包长度
payload:负载,为给应用程序发送的文本内容,可设置为 NULL
payload_s:负载长度,或为 0
l:libnet_init() 返回的 libnet * 指针
ptag:协议标记,第一次组新的发送包时,这里写 0,同一个应用程序,下一次再组包时,这个位置的值写此函数的返回值 。
成功:协议标记libnet_ptag_t libnet_build_tcp_options(
失败:-1
u_int8_t *options,功能:
u_int32_t options_s,
libnet_t *l,
libnet_ptag_t ptag );
构造 tcp 选项数据包参数:
options:tcp 选项字符串返回值:
options_s:选项长度
l:libnet 句柄,libnet_init() 返回的 libnet * 指针
ptag:协议标记,第一次组新的发送包时,这里写 0,同一个应用程序,下一次再组包时,这个位置的值写此函数的返回值 。
成功:协议标记libnet_ptag_t libnet_build_ipv4(
失败:-1
u_int16_t ip_len, u_int8_t tos,功能:
u_int16_t id, u_int16_t flag,
u_int8_t ttl, u_int8_t prot,
u_int16 sum, u_int32_t src,
u_int32_t dst, u_int8_t *payload,
u_int32_t payload_s,libnet_t *l,
libnet_ptag_t ptag );
构造一个 IPv4 数据包参数:
ip_len:ip 包总长返回值:
tos:服务类型
id:ip 标识
flag:片偏移
ttl:生存时间
prot:上层协议
sum:校验和,设为 0,libnet 自动填充
src:源 ip 地址
dst:目的ip地址
payload:负载,可设置为 NULL(这里通常写 NULL)
payload_s:负载长度,或为 0(这里通常写 0 )
l:libnet 句柄,libnet_init() 返回的 libnet * 指针
ptag:协议标记,第一次组新的发送包时,这里写 0,同一个应用程序,下一次再组包时,这个位置的值写此函数的返回值 。
成功:协议标记libnet_ptag_t libnet_build_ipv4_options(
失败:-1
u_int8_t*options, u_int32_t options,功能:
libnet_t*l, libnet_ptag_t ptag);
构造 IPv4 选项数据包参数:
options:tcp 选项字符串返回值:
options_s:选项长度
l:libnet 句柄,libnet_init() 返回的 libnet * 指针
ptag:协议标记,若为 0,建立一个新的协议
成功:协议标记libnet_ptag_t libnet_build_arp(
失败:-1
u_int16_t hrd, u_int16_t pro,功能:
u_int8_t hln, u_int8_t pln,
u_int16_t op, u_int8_t *sha,
u_int8_t *spa, u_int8_t *tha,
u_int8_t *tpa, u_int8_t *payload,
u_int32_t payload_s, libnet_t *l,
libnet_ptag_t ptag );
构造 arp 数据包参数:
hrd:硬件地址格式,ARPHRD_ETHER(以太网)
pro:协议地址格式,ETHERTYPE_IP( IP协议)
hln:硬件地址长度
pln:协议地址长度
op:ARP协议操作类型(1:ARP请求,2:ARP回应,3:RARP请求,4:RARP回应)
sha:发送者硬件地址
spa:发送者协议地址
tha:目标硬件地址
tpa:目标协议地址
payload:负载,可设置为 NULL(这里通常写 NULL)
推荐阅读
- 掌握Linux文件权限,看这篇就够了
- Linux 文件查找与编辑命令集合
- 机器学习之恶意流量检测的特征工程
- 月球背面之谜 人类为什么看不见月球的背面
- 俄罗斯谢尔盖穿越事件 前苏联谢尔盖穿越之谜
- 经典传奇成吉思汗陵墓之谜 成吉思汗陵墓之谜
- 养生|养生指南事业定位——有心之人皆因用心而有所成
- 埃及人面狮身像的鼻子是被谁炸毁的 埃及狮身人面像之谜
- 霍山黄芽之名人笔下,霍山黄芽品赏先容
- 行走茶山之景谷黄草坝,六大茶山
