2017-01-22 66 views
0

我在PHP中使用腳本來測試簡單的loadbalancer web應用程序。我把下面的文件放在網絡服務器上,它讓我看看我的LB是否在工作。我現在需要使用燒瓶在python中編寫相同的腳本。我不知道是否有以下的蟒蛇等價物:Python版本的PHP測試腳本

「<?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

創建簡單的燒瓶應用程序,只需看看quickstart

$_SERVER['SERVER_ADDR'] - 您必須找到一些解決方法。例如,您可以將您的IP存儲在配置文件中。

燒瓶如何知道您的網絡服務器正在監聽的IP?我不想 認爲WSGI將此信息傳遞給應用程序。

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

$_SERVER['REMOTE_ADDR'] =>request.remote_addr

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

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')