gpt4 book ai didi

python /iptables : Original Destination IP

转载 作者:IT王子 更新时间:2023-10-29 01:26:23 25 4
gpt4 key购买 nike

我正在尝试获取使用 iptables 重定向的数据包的原始目标信息(最终目标是将所有网络流量重定向到本地主机,同时保留原始目标 ip)。
我正在使用以下代码发送数据包:

import socket  
HOST = '192.168.10.1'
PORT = 50007
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send(b'whatever')
s.close()

然后重定向:

iptables -t nat -A OUTPUT -d 192.168.10.1 -j DNAT --to 127.0.0.1

然后接收它们:

import socket
HOST = ''
PORT = 50007
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
while True:
s.listen(5)
conn, addr = s.accept()
print('Connected by', addr)
data = conn.recv(1024)
if(data):
print(data)
conn.close()

我试过用类似的东西

dst = conn.getsockopt(socket.SOL_IP, socket.SO_ORIGINAL_DST, 16)

但这会导致

AttributeError: 'module' object has no attribute 'SO_ORIGINAL_DST'

最佳答案

一些进一步的阅读和尝试导致我犯了错误。我对阅读的各种方法感到有点困惑,并且迷失了方向。线索在于定义 SO_ORIGINAL_DST(在本例中为 TCP)。
此代码(取自 here)完全符合我的要求:

SO_ORIGINAL_DST = 80
sockaddr_in = conn.getsockopt(socket.SOL_IP,
SO_ORIGINAL_DST, 16)
(proto, port, a, b, c, d) = struct.unpack('!HHBBBB', sockaddr_in[:8])
print('Original destination was: %d.%d.%d.%d:%d' % (a, b, c, d, port))

关于 python /iptables : Original Destination IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30571630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com