From 643e68f67e4ef06d31c8b5fbf744d1693d30fdad Mon Sep 17 00:00:00 2001 From: BuffTechTalk Date: Mon, 30 Sep 2024 22:03:53 -0500 Subject: [PATCH] check if IP can be find in header info --- .../__pycache__/reference.cpython-312.pyc | Bin 1047 -> 1118 bytes webpages/__pycache__/testing.cpython-312.pyc | Bin 5152 -> 1967 bytes webpages/testing.py | 183 +++++++++++------- 3 files changed, 108 insertions(+), 75 deletions(-) diff --git a/webpages/__pycache__/reference.cpython-312.pyc b/webpages/__pycache__/reference.cpython-312.pyc index 9d7b7d78b1305fa8129fc21032fae43965fd05e6..6a24ce3a5362a19312d6aea774747a0af02948f5 100644 GIT binary patch delta 111 zcmbQvagT%VG%qg~0}!lF{GBGtJdy7oWA3( zN=?ko$t=-z%g@Oy%~kMCEQr;}C@Co@w$j&61B*@G$f!73pShcjOOWF$1J~pO%>Eoa KjGRU6KpOylNg(b3 delta 69 zcmcb|F`a|&G%qg~0}yzp-cP&AG?DKgqsnAn##Bb7$%>33o7)((85vV2e`2zkT*lnZ X#wp10m4S0IJBvRDHzQ{eJ5V10n#d6n diff --git a/webpages/__pycache__/testing.cpython-312.pyc b/webpages/__pycache__/testing.cpython-312.pyc index 32af22229e0905135d85287e571dda376817b68f..a97b58d15bf9417e90b3bbc161ccf30721706dd0 100644 GIT binary patch literal 1967 zcmah~&2Jk;6rcU@_h;h721Ff0qDY$(hmV3vp`ZdKL4^d-K(BC2X0YPB$Qrwv;Ig@A~Djw_nS9w-psuD zz1d$wAwPn)j~^CZ?nCHz(djn11NLtLSVsmjq!Q94N6Wh6XjNAo?b2PK<&xX-=pL!< z>(#wrQ%XL|r~4e6TJl=~JqXx!6X_usb(dr-tcRUZPbp$W^{9irr9P`)?+5Gy&zRxI z0|nU#+*I|!B}ohZCAK!LNjy|2m&~e_r7XwHJQ%!2j$vk67;qq8HgFajCM%PC=P-_P zfmGnz-vhCZnB-VN6uW2c8bBM;ozA%Qf1dJ*p6Zcc9cU=b)3x5|fUnUvC(rkGJr6bO z!J>12y{-d_!Q*|=JKWh4($wkY;4G%hwC7Uq=jJeX&6=!)m-}Ytaf)E8%y7!Aq)eL9 zJY1%XyObx`0-H!d~$hrfUCyP3xDnMU-*P4%UY%dHP?>tE`v z&`>ip^qZO@QHTXp@sO(BVNJg{8qE{40w=86**seWhj><)VSluoUjWoO;4xYWN;$N8 z7r;?kb+338tpJ@KhtXAOMJfv4N1D;2fT1{k@``-fxviNV|-N5$l!M2qOMf`6}Gus{EO}B(-%-s-Z>YDym7Eyd0jy?68E=)0&qIKui(? z!Gj{%rVWpkoyXiSdij!xZN~i+Q)-s&tZ8uH#l<|XFz5j-@%1W{0{8W5O;fl6l;pwQ z47*U~50Yn|`x_z#Jd*ReZ_~|ueD-d3LWh<8WBav(+PB#;$HxlEm z#Mx%z>`$>@l0PRm5>soztw5p?7y_?d1qD;PeiVGH6&Pv;hFSrw8PFQ4_Rj+k3J&fe z2_i>g4|f#+2Q&`reIC3JN4FQG#Xv*CY7f3D6-IbhefND=?#-<_N6m5Z|e&1MjO=*{GKAYvg$t5Wf!k zItWOOByFSEHi~bf$TkY?ps{Tf-a)7SM5B8jNvibJ-+m+|chLDA^v<5@mIijCVQK6u K`T&7)7WfyibIQR0 literal 5152 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 str: + """Get remote ip.""" + + try: + ctx = get_script_run_ctx() + if ctx is None: + return None + + session_info = runtime.get_instance().get_client(ctx.session_id) + if session_info is None: + return None + except Exception as e: + return None + + return session_info.request.remote_ip + + + # ce.code_editor() # # # [Work]code for instering youtube videos @@ -59,53 +92,53 @@ def testing(): # Initialize the database - conn = sqlite3.connect('./files/visitor_locations.db') - c = conn.cursor() - c.execute('''CREATE TABLE IF NOT EXISTS visitors - (id INTEGER PRIMARY KEY AUTOINCREMENT, - latitude REAL, - longitude REAL, - city TEXT, - country TEXT, - timestamp DATETIME)''') - conn.commit() + # conn = sqlite3.connect('./files/visitor_locations.db') + # c = conn.cursor() + # c.execute('''CREATE TABLE IF NOT EXISTS visitors + # (id INTEGER PRIMARY KEY AUTOINCREMENT, + # latitude REAL, + # longitude REAL, + # city TEXT, + # country TEXT, + # timestamp DATETIME)''') + # conn.commit() - st.title('Visitor Location Tracker') + # st.title('Visitor Location Tracker') - # Get and save current visitor's location - ip = get_ip() - lat, lon, city, country = get_location(ip) - if lat and lon: - save_visitor(conn, lat, lon, city, country) - st.write(f"Your location: {city}, {country}") - else: - st.write("Unable to determine your location") + # # Get and save current visitor's location + # ip = get_ip() + # lat, lon, city, country = get_location(ip) + # if lat and lon: + # save_visitor(conn, lat, lon, city, country) + # st.write(f"Your location: {city}, {country}") + # else: + # st.write("Unable to determine your location") - # Display all visitors on a map - st.subheader('All Visitor Locations') - df = get_all_visitors(conn) - if not df.empty: - m = create_map(df) - folium_static(m) - else: - st.write("No visitor data available yet.") + # # Display all visitors on a map + # st.subheader('All Visitor Locations') + # df = get_all_visitors(conn) + # if not df.empty: + # m = create_map(df) + # folium_static(m) + # else: + # st.write("No visitor data available yet.") - # Display visitor statistics - st.subheader('Visitor Statistics') - col_visitors, col_cities, col_countries = st.columns(3) - if not df.empty: - with col_visitors: - st.metric(label="Total visitors", value= df['id'].nunique()) - with col_cities: - st.metric(label="Total cities", value= df['city'].nunique()) - with col_countries: - st.metric(label="Total countries", value= df['country'].nunique()) - st.write("Top 5 cities:") - st.write(df['city'].value_counts().head()) - else: - st.write("No visitor data available yet.") + # # Display visitor statistics + # st.subheader('Visitor Statistics') + # col_visitors, col_cities, col_countries = st.columns(3) + # if not df.empty: + # with col_visitors: + # st.metric(label="Total visitors", value= df['id'].nunique()) + # with col_cities: + # st.metric(label="Total cities", value= df['city'].nunique()) + # with col_countries: + # st.metric(label="Total countries", value= df['country'].nunique()) + # st.write("Top 5 cities:") + # st.write(df['city'].value_counts().head()) + # else: + # st.write("No visitor data available yet.") - # Close the database connection - conn.close() \ No newline at end of file + # # Close the database connection + # conn.close() \ No newline at end of file