@@ -13,7 +13,7 @@ from account.serializers import GroupSerializer, LensmanInfoSerializer, UserInfo |
||
| 13 | 13 |
from operation.models import GuestEntranceControlInfo |
| 14 | 14 |
from utils.error.errno_utils import LensmanStatusCode, UserStatusCode |
| 15 | 15 |
from utils.error.response_utils import response |
| 16 |
-from utils.ip_utils import ip_addr |
|
| 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 = ip_addr(request), tc.utc_datetime() |
|
| 59 |
+ signup_ip, signup_at = get_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 = ip_addr(request), tc.utc_datetime() |
|
| 99 |
+ login_ip, login_at = get_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 = ip_addr(request), tc.utc_datetime() |
|
| 159 |
+ signup_ip, signup_at = get_client_ip(request), tc.utc_datetime() |
|
| 160 | 160 |
|
| 161 | 161 |
try: |
| 162 | 162 |
user = UserInfo.objects.select_for_update().get(user_id=user_id) |
@@ -18,7 +18,7 @@ from photo.models import PhotosInfo |
||
| 18 | 18 |
from photo.serializers import PhotosInfoSerializer |
| 19 | 19 |
from utils.error.errno_utils import LensmanStatusCode, PhotoStatusCode |
| 20 | 20 |
from utils.error.response_utils import response |
| 21 |
-from utils.ip_utils import ip_addr |
|
| 21 |
+from utils.ip_utils import get_client_ip |
|
| 22 | 22 |
from utils.redis.rgroup import get_group_info, set_group_info, set_group_users_info |
| 23 | 23 |
from utils.redis.rkeys import (GROUP_LAST_PHOTO_PK, GROUP_USERS_DELETED_SET, GROUP_USERS_PASSED_SET, |
| 24 | 24 |
GROUP_USERS_QUIT_SET, GROUP_USERS_REFUSED_SET, UUID_LIST) |
@@ -125,7 +125,7 @@ def session_join_api(request): |
||
| 125 | 125 |
user, user_created = UserInfo.objects.get_or_create(user_id=user_id, defaults={
|
| 126 | 126 |
'user_id': CurtailUUID.uuid(UserInfo, 'user_id'), |
| 127 | 127 |
'user_status': UserInfo.ASSIGN, |
| 128 |
- 'assign_ip': ip_addr(request), |
|
| 128 |
+ 'assign_ip': get_client_ip(request), |
|
| 129 | 129 |
'assign_at': tc.utc_datetime(), |
| 130 | 130 |
}) |
| 131 | 131 |
user_id = user.user_id |
@@ -1,5 +1,10 @@ |
||
| 1 | 1 |
# -*- coding: utf-8 -*- |
| 2 | 2 |
|
| 3 | 3 |
|
| 4 |
-def ip_addr(request): |
|
| 5 |
- return request.META['HTTP_X_FORWARDED_FOR'] if 'HTTP_X_FORWARDED_FOR' in request.META else request.META['REMOTE_ADDR'] |
|
| 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 |