vmonteco
vmonteco

Reputation: 15453

Django : Get user IP from development server

I'm trying to put the user IP in the page I send to the user. I've tried like explained here.

So my view looks like :

def yourip(request):
    return HttpResponse("Your IP is : %s" % request.META.get('HTTP_X_FORWARDED_FOR'))

but request.META.get('HTTP_X_FORWARDED_FOR') returns None. Is it possible to do this from the development server? Or is the problem elsewhere?

Thank you.

Upvotes: 3

Views: 10168

Answers (2)

user10019377
user10019377

Reputation: 1

In the development server, you can't get client IP so use Ngrok

Usage: ngrok http <your_development_server PORT>

Upvotes: 0

Yahya Yahyaoui
Yahya Yahyaoui

Reputation: 2953

Try this:

def get_client_ip(request):
    x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
    if x_forwarded_for:
        print "returning FORWARDED_FOR"
        ip = x_forwarded_for.split(',')[-1].strip()
    elif request.META.get('HTTP_X_REAL_IP'):
        print "returning REAL_IP"
        ip = request.META.get('HTTP_X_REAL_IP')
    else:
        print "returning REMOTE_ADDR"
        ip = request.META.get('REMOTE_ADDR')
    return ip

Upvotes: 7

Related Questions