Duplicate Check
Describe the bug
Client IP can not be gotten when using IPv6.
For example, my IPv6 is [2409:8a50:480:1c54:16b1:4637:d98f:5e2a], but it shows 2409.


By the way.. How can I settle the text on the center of the page..?
Code sample
# ZhiXueFlet
# 作者: wangzm5573.
from __future__ import annotations
print(f"ZhiXueFlet 以 {__name__} 运行.")
from typing import Union, Any, Callable, Final, Literal, Optional, _LiteralGenericAlias, overload, TypeVar, Type, cast, get_args, get_origin, get_type_hints, runtime_checkable, TYPE_CHECKING, Protocol, final, no_type_check, no_type_check_decorator, TypeAlias # type: ignore
from types import GenericAlias
import traceback, sys, logging, time, dataclasses, re, os, datetime, threading, copy, json, base64, random, ctypes, string
import flet
class ZhiXueFlet():
def __init__(self: ZhiXueFlet, page: flet.Page) -> None:
self.updateLock = threading.Lock()
self.page = page
self.page.title = "IP"
self.page.padding = 0
self.page.scroll = flet.ScrollMode.AUTO
self.page.theme_mode = flet.ThemeMode.SYSTEM
self.page.theme = flet.Theme(color_scheme_seed = flet.colors.BLUE_100)
self.page.dark_theme = flet.Theme(color_scheme_seed = flet.colors.BLUE_900)
self.page.vertical_alignment = flet.MainAxisAlignment.CENTER
self.page.horizontal_alignment = flet.CrossAxisAlignment.CENTER
self.__initControl__()
self.onConnect()
self.page.on_close = self.onClose
self.page.on_connect = self.onConnect
self.page.on_disconnect = self.onDisconnect
self.page.controls.append(self.format)
self.update()
def onConnect(self: ZhiXueFlet, *args, **kwargs) -> None:
self.connected = True
print(f"[{time.strftime('%H:%M:%S', time.localtime())}] {self.page.session_id} {self.page.client_ip} 连接网页.")
def onDisconnect(self: ZhiXueFlet, *args, **kwargs) -> None:
self.connected = False
print(f"[{time.strftime('%H:%M:%S', time.localtime())}] {self.page.session_id} {self.page.client_ip} 断开网页.")
def onClose(self: ZhiXueFlet, *args, **kwargs) -> None:
print(f"[{time.strftime('%H:%M:%S', time.localtime())}] {self.page.session_id} {self.page.client_ip} 会话关闭.")
self.page.controls.clear()
self.page.overlay.clear()
def update(self: ZhiXueFlet) -> None:
with self.updateLock:
self.page.update()
def __initControl__(self: ZhiXueFlet) -> None:
self.IPtext = flet.Text(f"Your IP address is: {self.page.client_ip}", size = 24, text_align = flet.TextAlign.CENTER)
self.format = flet.Row(
alignment = flet.MainAxisAlignment.CENTER,
controls = [
flet.Container(
alignment = flet.alignment.center,
content = self.IPtext
),
]
)
if __name__ == "__main__":
os.environ["FLET_DISPLAY_URL_PREFIX"] = "Website started at"
flet.app(target = ZhiXueFlet, port = 5573, view = flet.AppView.WEB_BROWSER, web_renderer = flet.WebRenderer.AUTO)
input("Press Enter to exit...\n")
To reproduce
- Run the script.
- Open website [IPv6 address]:5573
- Then the bug occured.
Expected behavior
'Your IP address is: {%s}' shows on the center of the page, and the IP is correct.
Screenshots / Videos
No response
Operating System
Windows
Operating system details
Windows 11
Flet version
Name: flet Version: 0.25.0.dev3382 Summary: Flet for Python - easily build interactive multi-platform apps in Python Home-page: https://flet.dev Author: Appveyor Systems Inc. Author-email: hello@flet.dev License: Apache-2.0 Location: C:\Program Files\Python312\Lib\site-packages Requires: cookiecutter, fastapi, flet-runtime, packaging, qrcode, uvicorn, watchdog Required-by:
Regression
I'm not sure / I don't know
Suggestions
No response
Logs
No response
Additional details
No response
Duplicate Check
Describe the bug
Client IP can not be gotten when using IPv6.
For example, my IPv6 is [2409:8a50:480:1c54:16b1:4637:d98f:5e2a], but it shows 2409.


By the way.. How can I settle the text on the center of the page..?
Code sample
To reproduce
Expected behavior
'Your IP address is: {%s}' shows on the center of the page, and the IP is correct.
Screenshots / Videos
No response
Operating System
Windows
Operating system details
Windows 11
Flet version
Name: flet Version: 0.25.0.dev3382 Summary: Flet for Python - easily build interactive multi-platform apps in Python Home-page: https://flet.dev Author: Appveyor Systems Inc. Author-email: hello@flet.dev License: Apache-2.0 Location: C:\Program Files\Python312\Lib\site-packages Requires: cookiecutter, fastapi, flet-runtime, packaging, qrcode, uvicorn, watchdog Required-by:
Regression
I'm not sure / I don't know
Suggestions
No response
Logs
No response
Additional details
No response