这请求过了几跳
按模型,链 [1.1.1.1, 10.0.0.2, 10.0.0.3],hops 交回几?
贯穿本节的头部转发模型:X-Forwarded-For 是一条 IP 链。add_xff(链, 发送方IP) 把上一跳发送方追加到链尾;origin_client 交回最初客户端(链首、最左);hops 交回经过几跳(链长);add_via(链, 名字) 每过一个代理记一道 Via。
def add_xff(xff, sender_ip):
# 代理把上一跳发送方的 IP 追加到 X-Forwarded-For 链尾
return xff + [sender_ip]
def origin_client(xff):
# 最初的客户端 = 链首(最左);空链交回 ""
return xff[0] if xff else ""
def hops(xff):
# 这个请求经过了几跳(链长)
return len(xff)
def add_via(via, node):
# 每经一个代理,Via 记一道自己的名字
return via + [node]
print(hops(["1.1.1.1", "10.0.0.2", "10.0.0.3"]))
全部评论