django-ipware - определяем IP пользователя

Для повышения безопасности аккаунтов пользователей можно применять много способов, например, капча, двухфакторная авторизация, сложные длинные пароли, привязка к IP-адресу.

Наверное, вы сталкивались с письмами от google, с содержанием аля "В ваш аккаунт зашли с IP-адреса <такого-то>, что делать?". Чтобы реализовать такую логику необходимо записывать историю входов и ip-адрес.

Для django есть небольшой модуль - django-ipware, который самостоятельно разбирает HTTP(s) запрос. Модуль вычитывает необходимые поля запроса и возвращает адрес пользователя.

Примеры:

from ipware.ip import get_real_ip
ip = get_real_ip(request)
if ip is not None:
   # we have a real, public ip address for user
else:
   # we don't have a real, public ip address for user


from ipware.ip import get_ip
ip = get_ip(request)
if ip is not None:
   # we have an ip address for user
else:
   # we don't have an ip address for user

from ipware.ip import get_ip
ip = get_ip(request, right_most_proxy=True)
# OR
ip = get_real_ip(request, right_most_proxy=True)

Репозиторий модуля: https://github.com/un33k/django-ipware

Комментарии

Теги

notify, os, isinstance, encode, database, all, многопоточность, mail, срез, сборник, pytest, новый год, конкурентность, аргумент, gevent, pycon, GIL, python проект, интерпретатор, игры, замыкание, pynotify, функциональное программирование, pypi, типы данных, csv, график, testing, поиск ошибок, автоматизация, ardruio, swagger, память, vk.com, файл, pip, web, тест, статический анализ, dsl, syntax, отчет, notification, список, ide, графика, rest, pycallgraph, githook, generic, hook. webhook, история, asyncio, logging, инструмент, swig, click, Category: Полезные модули, crawler, while, aiohttp, оптимизация, clonedigger, Бизли, трансдьюсер, matplotlib, bottle, концепция, типизация, language, урок, fuzzy-testing, nose, image, путь, удаленный вызов процедур, тестирование, консоль, vk, c, list, pylint, operator, print, практика, сравнение, functools, польза, измерение, сопроцедуры, selenium, генерация данных, БД, мастер класс, plotly, bokeh, генерация, производительность, winapi, flask, typing, strip, lxml, os.path, grab, scandir, Qt, pycharm, проект, книга, dictwriter, coverage, html, фп, pypy, signal, стандартная библиотека, now, weakref, google, практика программирования, Tags:, corotine, sqlalchemy, nameko, синтаксис, import, паттер, virtualenv, api, зеленый поток, timeit, контекст, бд, funcy, encoding, кэш, json, статистика, байт-код, unittest, кодировка, datetime, opencv, ооп, itertools, package, fp, mixin, python, assert, pyqt, утка, garbage collector, frozenset, курс, numpy, django-debug-toolbar, терминал, xpath, closure, type, requirements, дубликат, статическая типизация, PIL, работа, debug, быстродействие, водяной знак, plot, рейтинг, ip, python3, yield from, fronteram scrapy, видео, test, fuzzy, curses, gitter, unicode, twitter, decode, cache, pep, вконтакте, операционная система, ОС, awesome, any, тесты, задача, установка, последовательность, ошибки, генератор, hardcore, toolbar, Wx, магия, doctest, qt, железо, множество, marshal, сигнал, greenlet, слайс, db, future, время, admin, pyside, настройка, regex, module, примесь, slots, sys, email, action, регулярные выражения, одноплатный компьютер, дубликат кода, scrapinghub, micropython, mock, фича, raspberry pi, foreign key, ссылка, pickle, django, нг, модуль, справочник, celery, импорт, лямбда, with, rpc, наука, jinja2, log, обработка текста, super, set, svg, матрица, pygame, fixture, docstring, декларативный язык, fabric, пакет, опыт, магическая переменная, regexp, Гвидо, slice, __all__, gui, база данных, юникод, yattag, cython, матан, документация, анализатор, менеджер контекста, yield, учебник, real-time, слабая ссылка, IPython, браузер, xml, GUI, gc, channel, zip, машинное обучение, библиотека, __future__, ошибка, данные, requirements.txt, оповещение, парсинг, изображение, CLI, tox, фильтр, feedly, R, cffi, http, таблицы, gunicorn, python2, стандарт, if, rss, requests, tkinter, time, mechanize, gensim, интерфейс, Category: Разное, визуализация, postgresql, web parsing, язык, исключение, архитектура, lstrip, parsing, Category: Встречи, путь до файла, copy paste, multiprocessing, объект, rstrip, статический анализатор, lambda