У меня есть приложение для бутылок на герою, и мне нужно отфильтровать входящие IP-адреса. Я не очень понимаю, как это сделать.IP-фильтрация в бутылке
This answer предлагает использовать обертку, но это для частных маршрутов - не для фильтрации входящих запросов. Обертка:
def private_only(route):
def wrapper(*args, **kwargs):
if IPy.IP(bottle.request.remote_addr).iptype() == 'PRIVATE':
return route(*args, **kwargs)
else:
return "Not allowed!"
return wrapper
бы изменения обертке:
def private_only(route):
def wrapper(*args, **kwargs):
if IPy.IP(bottle.request.remote_addr).iptype() in ALLOWED_IPS:
return route(*args, **kwargs)
else:
return "Not allowed!"
return wrapper
и декорирования маршрутов с:
@route('/my/internal/route')
@private_only
def my_view():
return some_data()
работы?