Python版的PHP测试脚本

时间:2017-01-22 04:42:03

标签: python flask

我有一个PHP脚本,用于测试一个简单的loadbalancer Web应用程序。我将下面的文件放在网络服务器中,它让我看看我的LB是否正常工作。我现在需要使用flask在python中编写相同的脚本。我想知道python中是否有以下内容:

“<?php
header('Content-Type: text/plain');
echo "Server IP: ".$_SERVER['SERVER_ADDR'];
echo "\nClient IP: ".$_SERVER['REMOTE_ADDR'];
echo "\nX-Forwarded-for: ".$_SERVER['HTTP_X_FORWARDED_FOR'];
echo "\n";
?>”

感谢

2 个答案:

答案 0 :(得分:0)

要创建简单的烧瓶应用程序,只需查看quickstart即可。

$_SERVER['SERVER_ADDR'] - 您必须找到一些解决方法。例如,您可以将IP存储在配置文件中。

  

烧瓶如何知道您的网络服务器正在监听的IP?我没有   认为WSGI将此信息传递给应用程序。

https://github.com/pallets/flask/issues/1216

$_SERVER['REMOTE_ADDR'] =&gt; request.remote_addr

$_SERVER['HTTP_X_FORWARDED_FOR'] =&gt; request.headers.getlist("X-Forwarded-For")

答案 1 :(得分:0)

谢谢,这是最后的剧本......

    from flask import Flask,request
    from prettytable import PrettyTable
    import os

    app = Flask(__name__)


    @app.route('/')
    def index():
        ipv4 = os.popen('ip addr show eth0').read().split("inet ")[1].split("/")[0]
        ipv6 = os.popen('ip addr show eth0').read().split("inet6 ")[1].split("/")[0]
        table = PrettyTable()
        table.field_names = ["IPv4", "IPv6", "REMOTE_ADDR", "HTTP_X_FORWARDED_FOR"]
        table.add_row([ipv4, ipv6, request.remote_addr, request.headers.getlist("X-Forwarded-For")])
        return ('<pre>\n' + table.get_string() + '\n</pre>\n')