【问题标题】:Any way to determine which ethernet port a cgi request is coming from in Python?有什么方法可以确定 Python 中 cgi 请求来自哪个以太网端口?
【发布时间】:2014-03-17 16:53:38
【问题描述】:

我有一台带有两个以太网端口的 linux 机器,eth0eth1。一个端口连接到一个装有硬件设备的网络,这些硬件设备可以通过以太网进行控制。这是我的“指挥网络”。另一个端口连接到网络,我通过 linux 机器的 apache 服务器上的网络应用程序从该网络向上述设备发送某些命令。该网络就是“控制网络”。

我想做的是允许根据命令更改任一网络的 IP 地址,无论哪个网络插入哪个端口。

这个想法是,用户将在 Web 应用程序中输入命令网络或控制网络的新 IP 地址,然后单击提交,这将向服务器发起 AJAX 请求。然后,服务器将确定请求是来自eth0 还是eth1,然后更改该端口的 IP 地址或另一个端口的 IP 地址,具体取决于命令或控制网络是否正在更改。

在 Python 中有什么方法可以确定请求来自哪个以太网端口?

【问题讨论】:

    标签: python linux networking port ethernet


    【解决方案1】:

    在 Python 中有没有办法确定请求来自哪个以太网端口?

    不容易。

    但是,您可以在一个接口上设置一些iptables 规则到 NAT 端口 80,例如127.0.0.1:8000,另一个接口到127.0.0.1:8001

    例如:

    iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8000
    iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8001
    

    然后您可以监听两个端口(@98​​7654325@ 和 8001)并通过 python 实例(取决于您的 python web 框架)或目标端口将它们区分开来。

    【讨论】:

      猜你喜欢
      • 2020-11-17
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2012-11-11
      • 2021-02-08
      • 2019-07-12
      • 1970-01-01
      相关资源
      最近更新 更多