Django - REMOTE_HOST空答案

时间:2014-04-27 22:19:34

标签: python django django-views

我有空答案的问题,代码在这里:

views.py

def home(request):
    ime = request.META['REMOTE_HOST']
    return HttpResponse('Welcome, %s.' %ime)

我得到了:

Welcome, .

回答。这里似乎有什么问题?

2 个答案:

答案 0 :(得分:2)

在我的项目中,我也遇到了这个问题。

但我使用socket方法让客户端主机解决这个问题,详情如下:

def welcome(request):
    try:
        real_ip = request.META['HTTP_X_FORWARDED_FOR']
        regip = real_ip.split(",")[0]
    except:
        try:
            regip = request.META['REMOTE_ADDR']
        except:
            regip = ""
    print(regip)
    if(regip == "127.0.0.1"):
        myHost=socket.gethostname()
    else:
        resultHost = socket.gethostbyaddr(regip)
        myHost=resultHost[0]
    print(myHost)

答案 1 :(得分:1)

REMOTE_HOST标头不是强制性的。尝试打印您的request.META字典,以查看实际在HTTP标头上传递的内容。或者您可以在开发模式下使用浏览器来查看。