我有一个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";
?>”
感谢
答案 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')