def test_remote_addr_fallback(self): request = HttpRequest() request.META = { 'HTTP_X_FORWARDED_FOR': '', 'HTTP_X_REAL_IP': '', 'REMOTE_ADDR': '177.139.233.133', } ip = get_ip_address_from_request(request) self.assertEquals(ip, "177.139.233.133")
def test_x_forwarded_for_multiple(self): request = HttpRequest() request.META = { 'HTTP_X_FORWARDED_FOR': '192.168.255.182, 10.0.0.0, 127.0.0.1, 198.84.193.157, 177.139.233.139', 'HTTP_X_REAL_IP': '177.139.233.132', 'REMOTE_ADDR': '177.139.233.133', } ip = get_ip_address_from_request(request) self.assertEquals(ip, "198.84.193.157")
def test_empty_x_forwarded_for_private_x_real_ip_fallback_on_remote_addr(self): request = HttpRequest() request.META = { 'HTTP_X_FORWARDED_FOR': '', 'HTTP_X_REAL_IP': '192.168.255.182', 'REMOTE_ADDR': '177.139.233.133', } ip = get_ip_address_from_request(request) self.assertEquals(ip, "177.139.233.133")
def test_bad_x_forwarded_for_fallback_on_x_real_ip(self): request = HttpRequest() request.META = { 'HTTP_X_FORWARDED_FOR': 'unknown 177.139.233.139', 'HTTP_X_REAL_IP': '177.139.233.132', 'REMOTE_ADDR': '177.139.233.133', } ip = get_ip_address_from_request(request) self.assertEquals(ip, "177.139.233.132")
def test_x_forwarded_for_singleton_private_address(self): request = HttpRequest() request.META = { 'HTTP_X_FORWARDED_FOR': '192.168.255.182', 'HTTP_X_REAL_IP': '177.139.233.132', 'REMOTE_ADDR': '177.139.233.133', } ip = get_ip_address_from_request(request) self.assertEquals(ip, "177.139.233.132")
def get_initial(self): initial = super(ContactFormView, self).get_initial() initial = initial.copy() initial["referrer"] = self.request.META.get("HTTP_REFERER", "Unknown") initial["ip_address"] = get_ip_address_from_request(self.request) if self.request.user.is_authenticated(): initial["name"] = self.request.user.get_full_name() initial["email"] = self.request.user.email initial["subject"] = self.request.GET.get("page_title", "") return initial
def daily_message_limit_reached(request): """ returns True if max message number has been reached by ip_address """ now = timezone.now() one_day = datetime.timedelta(days=1) yesterday = now - one_day tomorrow = now + one_day ip_address = get_ip_address_from_request(request) total_messages_today = ContactMessage.objects.filter(ip_address=ip_address, created_at__gt=yesterday, created_at__lt=tomorrow) if len(total_messages_today) >= defaults.CONTACTWARE_TOTAL_DAILY_MESSAGES_BY_IP: return True return False
def user_audit_create(sender, user, request, **kwargs): """ Create a user audit when user is logged in """ audit_key = get_hashed(request.session.session_key) try: audit = UserAudit.objects.get(audit_key=audit_key) except UserAudit.DoesNotExist: data = { 'user': request.user, 'audit_key': audit_key, 'user_agent': request.META.get('HTTP_USER_AGENT', 'Unknown'), 'ip_address': get_ip_address_from_request(request), 'referrer': request.META.get('HTTP_REFERER', 'Unknown'), 'last_page': request.path or '/', } audit = UserAudit(**data) logger.info(_('User {} logged in'.format(request.user.username))) audit.save() request.session[constants.USERWARE_AUDIT_KEY] = audit_key request.session.modified = True cleanup_user_audits(request.user)
def get_user_coordinates(request): user_ip = get_ip_address_from_request(request) user_coordinates = get_lon_lat(user_ip) return user_coordinates