Partage de technologie

Discutez du comportement du proxy de couche 4 et du proxy de couche 7 et de la manière d'obtenir l'adresse IP réelle du client.

2024-07-11

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

Préparation

environnement de laboratoire

Propriété intellectuelleRôle
192.168.1.100IP de la demande du client
192.168.1.100Service HTTP démarré par python
192.168.1.102service nginx
192.168.1.103service de procuration

Service HTTP

Il s'agit d'un service HTTP simple qui imprime principalement les messages HTTP pour analyser l'adresse IP du client.

#!/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