2012-11-29 2 views
0

내보기에 다음 코드 조각을 사용하여 사용자를 지리적 위치 설정 해요 : 내 dev에 서버 (manage.py runserver)에서프로덕션 서버에서 위치가 반입되지 않는 이유는 무엇입니까?

try: 
    jsonResponse = urllib2.urlopen("http://www.geoplugin.net/json.gp?ip="+request.META['REMOTE_ADDR']).read() 
    response = simplejson.loads(jsonResponse) 
    kwargs['loc'] = response['geoplugin_countryCode'] 
except: 
    kwargs['loc'] = 'error' 
return basic_html(request,'index.html',kwargs) 

이 잘 작동합니다. 내 gunicorn 프로덕션 서버에서 loc은 공백입니다 (error도 아님). 무슨 일이야?

+0

'REMOTE_ADDR'에 대한 가치가 있음을 확인 했습니까? 빈칸으로 채워지지 않는 경우가 종종 있으므로 빈 IP를 보내고 지오 프랭 서비스가 응답으로 빈 국가 코드를 반환하는 것일 수 있습니다. –

+0

@ Dan 예, nginx가 실제 IP를 전달했지만 다른 헤더에 있습니다. 지금 그것을 분류했다. 답변을 게시하면 받아 들일 수 있습니다! – fredley

답변

1

REMOTE_ADDR 값을 확인 했습니까? 빈칸으로 채워지지 않는 경우가 종종 있으므로 빈 IP를 보내고 지오 프랭 서비스가 응답으로 빈 국가 코드를 반환하는 것일 수 있습니다.

관련 문제