コンテンツへスキップ
メニュー
この質問にフラグが付けられました
1 返信
1121 ビュー

I am using the following code to get user ip information to record activity history, but the received ip is the ip of the active server, my Odoo server is deployed on ubuntu server 22.04


This is my code:

def _get_info_active(self):
"""
:return: ip_address, location, device_name
"""
try:
client_ip = request.httprequest.environ['REMOTE_ADDR']
location_info = {}
try:
response = requests.get(f'https://ipinfo.io/{client_ip}/json')
location_info = response.json()
except requests.RequestException:
location_info = {"error": "Could not retrieve location info"}

user_agent = request.httprequest.user_agent.string
return client_ip, f"{location_info.get('city')}, {location_info.get('region')}, {location_info.get('country')}", user_agent

except Exception as e:
raise UserError(str(e))
アバター
破棄
最善の回答

Check https://www.odoo.com/forum/help-1/how-to-check-when-a-user-was-last-active-odoo-18-264495 and https://github.com/odoo/odoo/blob/18.0/odoo/addons/base/models/res_device.py#L82 (maybe you can review our code to see how we do it)

アバター
破棄
著作者

I can't find it on Odoo16

We did not add this until version 18

関連投稿 返信 ビュー 活動
0
3月 15
4565
7
2月 24
12295
0
11月 17
4075
1
5月 25
1144
0
11月 24
1305