Change to use django-ip to get client ip

Brightcells 8 anos atrás
pai
commit
42f466c0a5
4 arquivos alterados com 7 adições e 16 exclusões
  1. 4 4
      account/views.py
  2. 2 2
      photo/views.py
  3. 1 0
      requirements.txt
  4. 0 10
      utils/ip_utils.py

+ 4 - 4
account/views.py

@@ -4,6 +4,7 @@ from curtail_uuid import CurtailUUID
4 4
 from django.contrib.auth.hashers import check_password, make_password
5 5
 from django.contrib.auth.models import Group, User
6 6
 from django.db import transaction
7
+from ipaddr import client_ip
7 8
 from logit import logit
8 9
 from rest_framework import viewsets
9 10
 from TimeConvert import TimeConvert as tc
@@ -13,7 +14,6 @@ from account.serializers import GroupSerializer, LensmanInfoSerializer, UserInfo
13 14
 from operation.models import GuestEntranceControlInfo
14 15
 from utils.error.errno_utils import LensmanStatusCode, UserStatusCode
15 16
 from utils.error.response_utils import response
16
-from utils.ip_utils import get_client_ip
17 17
 from utils.redis.rguest import get_guest_entrance_control
18 18
 from utils.redis.rprofile import set_profile_info
19 19
 from utils.version_utils import is_version_match
@@ -56,7 +56,7 @@ def user_signup_api(request):
56 56
         return response(UserStatusCode.USERNAME_HAS_REGISTERED)
57 57
 
58 58
     # 判断 user_id 是否存在并且为分配用户,如果存在并且为分配用户,则直接在该帐户上更新,否则则直接创建帐户
59
-    signup_ip, signup_at = get_client_ip(request), tc.utc_datetime()
59
+    signup_ip, signup_at = client_ip(request), tc.utc_datetime()
60 60
 
61 61
     try:
62 62
         user = UserInfo.objects.select_for_update().get(user_id=user_id)
@@ -96,7 +96,7 @@ def user_login_api(request):
96 96
     except UserInfo.DoesNotExist:
97 97
         return response(UserStatusCode.USER_NOT_FOUND)
98 98
 
99
-    login_ip, login_at = get_client_ip(request), tc.utc_datetime()
99
+    login_ip, login_at = client_ip(request), tc.utc_datetime()
100 100
 
101 101
     if not check_password(password, user.password):
102 102
         UserLoginLogInfo.objects.create(
@@ -156,7 +156,7 @@ def user_wx_authorize_api(request):
156 156
     # unionid 不存在
157 157
     # 判断 user_id 是否存在并且为分配用户,如果存在并且为分配用户,则直接在该帐户上更新,否则则直接创建帐户
158 158
 
159
-    signup_ip, signup_at = get_client_ip(request), tc.utc_datetime()
159
+    signup_ip, signup_at = client_ip(request), tc.utc_datetime()
160 160
 
161 161
     try:
162 162
         user = UserInfo.objects.select_for_update().get(user_id=user_id)

+ 2 - 2
photo/views.py

@@ -8,6 +8,7 @@ from django.conf import settings
8 8
 from django.db import transaction
9 9
 from django.shortcuts import render
10 10
 from django_q.tasks import async
11
+from ipaddr import client_ip
11 12
 from logit import logit
12 13
 from rest_framework import viewsets
13 14
 from TimeConvert import TimeConvert as tc
@@ -18,7 +19,6 @@ from photo.models import PhotosInfo
18 19
 from photo.serializers import PhotosInfoSerializer
19 20
 from utils.error.errno_utils import LensmanStatusCode, PhotoStatusCode
20 21
 from utils.error.response_utils import response
21
-from utils.ip_utils import get_client_ip
22 22
 from utils.redis.connect import r
23 23
 from utils.redis.rgroup import get_group_info, set_group_info, set_group_users_info
24 24
 from utils.redis.rkeys import (GROUP_LAST_PHOTO_PK, GROUP_USERS_DELETED_SET, GROUP_USERS_PASSED_SET,
@@ -123,7 +123,7 @@ def session_join_api(request):
123 123
     user, user_created = UserInfo.objects.get_or_create(user_id=user_id, defaults={
124 124
         'user_id': CurtailUUID.uuid(UserInfo, 'user_id'),
125 125
         'user_status': UserInfo.ASSIGN,
126
-        'assign_ip': get_client_ip(request),
126
+        'assign_ip': client_ip(request),
127 127
         'assign_at': tc.utc_datetime(),
128 128
     })
129 129
     user_id = user.user_id

+ 1 - 0
requirements.txt

@@ -9,6 +9,7 @@ TimeConvert==1.3.12
9 9
 cryptography==1.5.2
10 10
 django-curtail-uuid==1.0.0
11 11
 django-detect==1.0.5
12
+django-ip==1.0.0
12 13
 django-json-response==1.1.4
13 14
 django-logit==1.0.6
14 15
 django-multidomain==1.1.4

+ 0 - 10
utils/ip_utils.py

@@ -1,10 +0,0 @@
1
-# -*- coding: utf-8 -*-
2
-
3
-
4
-def get_client_ip(request):
5
-    x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
6
-    if x_forwarded_for:
7
-        ip = x_forwarded_for.split(',')[0]
8
-    else:
9
-        ip = request.META.get('REMOTE_ADDR')
10
-    return ip