当前位置: 首页 > article >正文

tcpdump 用法示例

server.py 源码:

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 如下:

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 端口

sudo tcpdump -i any -nn port 26099 -w http_traffic.pcap

python3 client.py

随后

tcpdump -XXnr http_traffic.pcap

可以看到如下列表
在这里插入图片描述

tcpdump 捕捉到了来往的 UDP 包


http://www.kler.cn/a/558003.html

相关文章:

  • 动态订阅kafka mq实现(消费者组动态上下线)
  • 在windows10上基于Python部署marker,实现PDF转markdown文件(保姆级)
  • ue5地面上出现preview字样
  • 小程序(物流、快递),接入GPS北斗获取路线以及当前车辆位置
  • 【后端】gitHub访问速度太慢解决办法
  • UE5.3 C++ TArray系列(一)
  • 【Python爬虫(43)】云端探秘:Python分布式爬虫部署攻略
  • Jenkins 自动构建Job
  • 14.5 基于LangChain重构Auto-GPT:新一代自主智能体架构设计实践
  • 当前 Java Web 开发的最新实现方式
  • 【复习】计算机网络
  • Spring Boot Validation 接口校验:从零到掌握
  • STM32 HAL库I2C函数使用详解:以MPU6050传感器为例
  • Windows 系统下,使用 PyTorch 的 DataLoader 时,如果 num_workers 参数设置为大于 0 的值,报错
  • Apache-CC6链审计笔记
  • PWR电源控制详解教程文章 ~内置初始化驱动代码!!!
  • 网络安全风险事件排名 网络安全事件划分
  • 网络运维学习笔记 012网工初级(HCIA-Datacom与CCNA-EI)某机构新增:GRE隧道与EBGP实施
  • 如何查询网站是否被百度蜘蛛收录?
  • CSS中块级格式化上下文(BFC)详解