Django でユーザーの IP アドレスを取得する方法
Django でユーザーの IP アドレスを取得することは、ジオタグやセキュリティ対策。
問題:
Django では、request.META['REMOTE_ADDR'] を使用して IP アドレスを取得しようとすると、エラーが発生する場合があります。このエラーは、リクエストの META データに「REMOTE_ADDR」キーが見つからない場合に発生します。
解決策:
この問題を解決するには、誤ったコードを次のコードに置き換えます。スニペット:
<code class="python">def get_client_ip(request): x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR') if x_forwarded_for: ip = x_forwarded_for.split(',')[0] else: ip = request.META.get('REMOTE_ADDR') return ip</code>
説明:
get_client_ip 関数は、リクエストの META データの「HTTP_X_FORWARDED_FOR」ヘッダーを検査します。これは通常、リバース プロキシとロード バランサによって設定されます。 。見つかった場合は、そのヘッダーから最初の IP アドレスを抽出します。それ以外の場合は、「REMOTE_ADDR」キーに戻ります。
実装:
Django ビューで、get_client_ip 関数を使用してユーザーの IP アドレスを取得します:
<code class="python">def home(request): client_ip = get_client_ip(request) ...</code>
追加の考慮事項:
以上がDjango でユーザーの IP アドレスを確実に取得する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。