Berbagi teknologi

Diskusikan perilaku proksi Lapisan 4 dan proksi Lapisan 7 serta cara mendapatkan IP klien sebenarnya

2024-07-11

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

Persiapan

lingkungan laboratorium

AKU PPeran
192.168.1.100IP permintaan klien
192.168.1.100Layanan HTTP dimulai dengan python
192.168.1.102layanan nginx
192.168.1.103layanan haproksi

layanan HTTP

Ini adalah layanan HTTP sederhana yang terutama mencetak pesan HTTP untuk menganalisis IP klien

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