Compartir tecnología

Analice el comportamiento del proxy de capa 4 y del proxy de capa 7 y cómo obtener la IP real del cliente.

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Preparación

ambiente de laboratorio

Propiedad intelectualRole
192.168.1.100IP de solicitud de cliente
192.168.1.100Servicio HTTP iniciado por Python
192.168.1.102servicio nginx
192.168.1.103servicio haproxy

servicio HTTP

Este es un servicio HTTP simple que imprime principalmente mensajes HTTP para analizar la IP del cliente.

#!/usr/bin/env python
# coding: utf-8

import socket
from threading import Thread

# 创建socket对象
sock_srv = socket.socket()

# 绑定IP和port
sock_srv.bind(('0.0.0.0', 5001))

# 开启服务
sock_srv.listen()

# 定义一个函数, 处理来自客户端链接的处理
def socket_deal(conn: socket.socket, address: tuple):
	# 通过socket获取客户端的IP; 这里的客户端IP其实指的是TCP报文中的原始IP和原始Port
	# 就是上一个发起TCP发起的地址 
    print(address)

    # 打印HTTP的报文
    print(conn.recv(1024).decode())

    # 不做特殊处理,所有的请求均返回Hello Word
    template = """
HTTP/1.1 200 OK
Service: HTTP
Version: 1.1.2.2