From 0997f656c1229e0a67e9a2da02e33bed7aaa3ad6 Mon Sep 17 00:00:00 2001 From: emile Date: Mon, 22 Jul 2024 22:29:40 +0300 Subject: [PATCH] new --- osinaweb/db.sqlite3 | Bin 1691648 -> 1691648 bytes .../__pycache__/consumers.cpython-310.pyc | Bin 4899 -> 4904 bytes .../osichat/__pycache__/urls.cpython-310.pyc | Bin 298 -> 368 bytes .../osichat/__pycache__/views.cpython-310.pyc | Bin 282 -> 682 bytes osinaweb/osichat/urls.py | 2 +- osinaweb/osichat/views.py | 15 ++++ .../__pycache__/settings.cpython-310.pyc | Bin 3129 -> 3211 bytes osinaweb/osinaweb/settings.py | 6 ++ osinaweb/static/js/osichat/visitors.js | 78 +++++++++--------- 9 files changed, 61 insertions(+), 40 deletions(-) diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index 3dfb6436274ba086148b45694347cbbb9cfda3ab..0458854c99e607d35f133ea7a9a45263b4faac2d 100644 GIT binary patch delta 1138 zcma)*!AlfT9LL{iGwbfG^L91e9SmBR(n9w2=Dj!b=FQ0^4<3vlNV=6>JS>>jA-u>g z33UiEf~JF*cPWU1p?iNo#|}cV1Vw~cbdW;rw=yG$)_V9{hVS?H{r$c(Q(v8~uTC!w zXyoy!iyC=#7fkjdfPRT`k1+)-^QTqd_<>-=Rmv0W>P&6s*4>#o`44#ssCDix0=fsn0E({t-_8d&bkHe`acHjQKUce=h4rA0$Y~mO;0hbc#`7Yy$ zjUU6t1LhFL6yr%dHP*(~YKaEICm!R%r*T?Cr+dD*r6Z1OwFN#&d>@Vz2iu}5pqy~U zBuf@CbLh(d+A__C?zG7a_A?b#Tppe2Nk8eVp_4Wf;fmI-j402ghbH;~SHzXVqcZLV nq4rl?Xp_nIGbL+%#|M5Q8fQxGxyif8SHi}!eLb33w%_o-ZuLrT delta 617 zcmZwBO=uHA6bJCxHnXXwnQ>cnGt}6%6dMV<&g^co%l4pB(Tmp>g;-kdNCN^W*abAu2l~No zum|joI(a?$oM75Q^e6pHKhhTcCXKc}EO}ce(ebu^k79(-{#?}hrDsEkHWB?nztTF6pm^2W5MNiX%`zsd%h%Wf^wf88uOvTRXR2289mn^!kHYLyoH`rNOo-yQ(pcD9$8++)4K^vK))Pd@?Z}SEJo^&6M>Ob}l-#!X7!l0f7O&r~m)} diff --git a/osinaweb/osichat/__pycache__/consumers.cpython-310.pyc b/osinaweb/osichat/__pycache__/consumers.cpython-310.pyc index 4627dc72b73991d896fbbd1977cd812683e8e6ea..8fba627e9d3d399e638ad3f118f446ee921cc56d 100644 GIT binary patch delta 186 zcmZ3iwnB|JpO=@50SMw(%uDOr$a|b+@*Ng#ts15UOeyRO8B;jsu+_4Zu+%VQv1YL~ zGp2CXurxCTGynhq delta 188 zcmZ3XwpfifpO=@50SIDO%uDOs$a|c{lw~1f4buXq6jmtBwvaJ}eGXeKO9@L2Ll$cm zTQg${M-59e6C*RaqEy@s1FvTb8#G}_$3mB+|vH2FKX LEs$f%^O+3*1I9Am diff --git a/osinaweb/osichat/__pycache__/urls.cpython-310.pyc b/osinaweb/osichat/__pycache__/urls.cpython-310.pyc index ea2bf730561f6275bbd4512f64d65f35a73928be..cf027c114bca46c8975f5c7726d14c18b831c759 100644 GIT binary patch delta 179 zcmZ3*^npn`pO=@50SKn9nwK^eNIwQ~kO3=@;{e3PMiaH=B~lqvSW;QCSW{S2*m{}M z8Kc-z*n=4~IVOgvXjSp0ru5^Yd))bat22Iw9Nh-{K tnrss{$cf$JE-lI_NGvHyEy^oi$xy@zR9?h6@pB;;8;~Wyz{AMF3;t)QgX|o*9b%qCqNYvD!D-`1u8@?5sEjkA=t~Vqm*bFw?C~wR=Yc8~=fK*{!~f1Bj)Mv=kC!TC5VXgdOfbQ( zp~(f^hpIQ;{dCnv$9^@>W;gxCdK%l1K^G<{P>?AZ;jpZUMKr@dAlN@T#SzKKgic{Z zGip0rc$UWwK`t`T>~a-h#1V$R@Z9MU2#bGm$zSpS2UnnZh8YvNzvMUCOZi{Te51bi z?V#S;-q~pw7%rS@9dFiZQ5?yRT8UI`$ZOqHNt0`ZRkm;jh}=U{V>(3VYA76{YN{Db)?p1LSNXqS4uPA?nR;0ttfV5X{=-#8YYhQ z@l4oYcn3*oJP~U}E8Tiy`)+BAHUvmW34Q#4fpz~Ec?xLa8g}Edx{=J=a)y(VtKP#$ Y3yuHzT#0@!+;Sh2I?)0YtXhFT12+_R1ONa4 delta 80 zcmZ3*I*W-fpO=@50SI<1nwRFqFp*D&QD&mH3@dXmgC@(w7zHLxmdPGWnw%>cir9dv fir6M^VoVX^u*uC&Da}c>V+4v7vj7Pm1_4F@zUB}P diff --git a/osinaweb/osichat/urls.py b/osinaweb/osichat/urls.py index 5ac52c4c..50aa8737 100644 --- a/osinaweb/osichat/urls.py +++ b/osinaweb/osichat/urls.py @@ -3,5 +3,5 @@ from . import views urlpatterns = [ - + path('get-client-ip/', views.get_client_ip, name='get-client-ip'), ] diff --git a/osinaweb/osichat/views.py b/osinaweb/osichat/views.py index b0fc71d7..3a82fd19 100644 --- a/osinaweb/osichat/views.py +++ b/osinaweb/osichat/views.py @@ -1,3 +1,18 @@ from django.shortcuts import render from django.http import JsonResponse +import requests + +# Create your views here. + +def get_client_ip(request): + client_ip = request.META.get('REMOTE_ADDR', '') + + try: + response = requests.get(f'http://ipinfo.io/{client_ip}/json') + data = response.json() + country = data.get('country', 'Unknown') + except Exception as e: + country = "Unknown" + + return JsonResponse({'ip': client_ip, 'country': country}) \ No newline at end of file diff --git a/osinaweb/osinaweb/__pycache__/settings.cpython-310.pyc b/osinaweb/osinaweb/__pycache__/settings.cpython-310.pyc index 51626b9e2fa4c8dbc60d96b57f969974225e773f..3eb05540e181b6dd624ee37f0717c1870c9c75e3 100644 GIT binary patch delta 356 zcmYk2-AV#s5Qd%oK6BIERr7CkUH|{m@E*d05F|sPU{1uGFWV@D73#1H=t%Y;h={y^ zAo8e#4!V+Vp-bq?KpJ>om}iD}VBXEUv@z55pifr)_311eT^LztE?UQS03)Pflyt!^ zcAjG*Kn8`E?5|rq*tcPrO+)W~3wcCkcFEK>_BQdQc+nvAHg zj^G0z;u%cn7@Ex7`MDUAaOd8f-GjOc@d;Sff4qI=5M7F!u`Al0nY%jme=}%!!|fLn zlb!xxINI;^`X|3W>JPdH-NWHq@DmEx@@?FwX(~h*_wy~TaJHpzMfIyOu5splh42U9 CBUqLI delta 284 zcmX|+J5Iw;5Jf$H&xx^YCzyQv&))$;!%ip=#kAaDnTCcw4PC0p1r3UDLkEp33JO-h zCRhkhM#@O{N^@p(N3#t+efPm}EKSwVW`Fn5-MKMkyVXr#a~IB9+#kPs>o#0;D)Ha# z_Q~c1J?^280fz8%DhR=gUJ&;c3)OlQX^0y#K!Q}w6O0-kH$EvSmpsIjeatvOn?t1t zbB+%u7nPn9C&)NGuw|w52&W;BamEvz^AszdDa~=g3l)*o*YriyDLt_+pTsk@>sa1W q{bu|MT9(_R_xj5Eru0!gEH&FUsVk%*TT+*zrAys3Oix { - fetch('https://ipinfo.io/json?token=YOUR_IPINFO_TOKEN') +// Function to fetch client IP and country from the API +function fetchClientData() { + return fetch('https://osina.ositcom.com/get-client-ip/') .then(response => response.json()) - .then(data => { - callback({ - ip: data.ip, - country: data.country - }); - }) + .then(data => ({ + client_ip: data.ip, + client_country: data.country + })) .catch(error => { - console.error('Error fetching IP and country:', error); - callback({ - ip: null, - country: 'unknown' - }); + console.error('Error fetching client data:', error); + return { + client_ip: 'Unknown', + client_country: 'Unknown' + }; }); -}; +} -const establishWebSocketConnection = (client_ip, client_country) => { - const visitorsSocket = new WebSocket(visitorsSocketUrl); +function initializeWebSocket() { + const referrer = document.referrer; - visitorsSocket.onopen = () => { - console.log('WebSocket connection to visitors established'); - - const event_message = { - 'event_type': 'new_visitor', - 'referrer': referrer, - 'url': window.location.href, - 'client_ip': client_ip, - 'client_country': client_country + // Fetch client data and then initialize WebSocket + fetchClientData().then(({ client_ip, client_country }) => { + const visitorsSocket = new WebSocket(visitorsSocketUrl); + + visitorsSocket.onopen = () => { + console.log('WebSocket connection to visitors established'); + + const event_message = { + 'event_type': 'new_visitor', + 'referrer': referrer, + 'url': window.location.href, + 'client_ip': client_ip, + 'client_country': client_country + }; + visitorsSocket.send(JSON.stringify(event_message)); }; - visitorsSocket.send(JSON.stringify(event_message)); - }; - visitorsSocket.onclose = () => { - console.log('WebSocket connection to visitors closed'); - }; + visitorsSocket.onclose = () => { + console.log('WebSocket connection to visitors closed'); + }; - visitorsSocket.onerror = (error) => { - console.error('WebSocket error:', error); - }; -}; + visitorsSocket.onerror = (error) => { + console.error('WebSocket error:', error); + }; + }); +} -// Get the client IP and country first, then establish the WebSocket connection -getClientIPAndCountry((client_info) => { - establishWebSocketConnection(client_info.ip, client_info.country); -}); +initializeWebSocket();