tcpdump 用法示例

server.py 源码:

python 复制代码
import socket
import sys

# 这里创建了一个UDP套接字。socket.AF_INET指定了IPv4地址族,socket.SOCK_DGRAM指定了这个套接字是UDP协议的。
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 这里定义了服务器将要监听的地址和端口。localhost代表本地机器,sys.argv[1]是从命令行接收的参数,它应该是一个端口号,这里将其转换为整数。
addr = ('localhost', int(sys.argv[1]))
print('listening on %s port %s' % addr, file=sys.stderr)
# 将套接字绑定到上面指定的地址和端口上,这样它就可以接收发送到这个地址和端口的数据包了。
sock.bind(addr)

while True:
    # 这行代码接收客户端发送的数据。recvfrom方法会阻塞,直到有数据到达。4096是接收缓冲区的大小。buf是接收到的数据,raddr是发送数据的客户端的地址。
    buf, raddr = sock.recvfrom(4096)
    # 将接收到的数据解码成UTF-8格式的字符串,并打印到标准错误输出。
    print(buf.decode("utf-8"), file=sys.stderr)
    # 如果接收到数据(buf不为空),则向发送数据的客户端地址发送一条消息"this is the host!"。
    if buf:
        sent = sock.sendto(b'this is the host!', raddr)

client.py 如下:

py 复制代码
import socket

# 目标IP地址和端口号
ip_address = '127.0.0.1'  # 请替换为目标IP地址
port_number = 26099       # 请替换为目标端口号

# 创建IPV4, UDP套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 要发送的数据
message = b'This is a UDP message'

try:
    # 发送数据
    print(f'Sending to {ip_address}:{port_number}')
    sent = sock.sendto(message, (ip_address, port_number))
    
    # 接收响应(如果需要的话)
    response, server = sock.recvfrom(4096)
    print(f'Received: {response.decode()} from {server}')

finally:
    # 关闭套接字
    print('Closing socket')
    sock.close()

运行效果如下:

使用 tcpdump 监听 26099 端口

bash 复制代码
sudo tcpdump -i any -nn port 26099 -w http_traffic.pcap

python3 client.py

随后

bash 复制代码
tcpdump -XXnr http_traffic.pcap

可以看到如下列表

tcpdump 捕捉到了来往的 UDP 包

相关推荐
white-persist1 小时前
【攻防世界】reverse | Reversing-x64Elf-100 详细题解 WP
c语言·开发语言·网络·python·学习·安全·php
HKT_China1 小时前
香港电讯与Fortinet推出100G高效加密网络托管服务,迈进量子安全新时代
网络·安全
上海云盾安全满满5 小时前
高防 IP 是如何帮助数藏行业防刷
网络·网络协议·tcp/ip
多多*10 小时前
Java复习 操作系统原理 计算机网络相关 2025年11月23日
java·开发语言·网络·算法·spring·microsoft·maven
p***434810 小时前
Rust网络编程模型
开发语言·网络·rust
NewCarRen11 小时前
汽车网络安全管理系统的需求分析及潜在框架设计
网络·汽车网络安全
捷米研发三部11 小时前
CC-Link转Modbus TCP协议转换网关实现三菱 PLC与传感器通讯在快递分拣中心的应用案例
网络·网络协议
嵌入式-小王11 小时前
每天掌握一个网络协议----ARP协议
网络·网络协议·arp
卓码软件测评11 小时前
第三方软件测评机构:【Gatling与JMeter的架构对比:异步与非阻塞I/O模型如何实现更高并发】
测试工具·jmeter·架构·测试用例·负载均衡·压力测试
美团程序员11 小时前
一篇文章教你搞定:”xx 功能如何测试?“常见面试题型!
测试工具·面试·职场和发展·测试用例