当前位置:  开发笔记 > 编程语言 > 正文

Python端口转发/多路复用服务器

如何解决《Python端口转发/多路复用服务器》经验,为你挑选了1个好方法。

我想让服务器在UDP端口162(SNMP陷阱)上侦听,然后将此流量转发到多个客户端.同样重要的是源端口和地址保持不变(地址欺骗).

我想最好的工具是Twisted或Scapy或者可能是vanilla套接字,只有我在Twisted关于源地址欺骗/伪造的文档中找不到任何内容.

对此有何解决方案?

编辑:添加赏金,mybe任何解决方案与iptables?



1> Benson..:

我对扭曲或狡猾感到不舒服,但使用香草蟒蛇插座做这件事非常简单.这样做的另一个好处是它将更加便携.此代码适用于我的有限测试:

#!/usr/bin/python
from socket import *
bufsize = 1024 # Modify to suit your needs
targetHost = "somehost.yourdomain.com"
listenPort = 1123

def forward(data, port):
    print "Forwarding: '%s' from port %s" % (data, port)
    sock = socket(AF_INET, SOCK_DGRAM)
    sock.bind(("localhost", port)) # Bind to the port data came in on
    sock.sendto(data, (targetHost, listenPort))

def listen(host, port):
    listenSocket = socket(AF_INET, SOCK_DGRAM)
    listenSocket.bind((host, port))
    while True:
        data, addr = listenSocket.recvfrom(bufsize)
        forward(data, addr[1]) # data and port

listen("localhost", listenPort)

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有