Рассмотрим первый случай с app.run()
. Вы получаете IPV4-адрес клиента, например:
The client IP1 is: 127.0.0.1
Теперь, если вы добавите аргумент host app.run(host='::')
, вы прослушаете сокет IPv6 и получите что-то вроде:
The client IP1 is: ::ffff:127.0.0.1
Использует ли клиент IPv6?
Нет, клиент все еще использует свой адрес IPv4 и общается с сервером IPv4. Так что без разницы с его точки зрения. Что изменится, так это то, что вы получите v4-mapped-on-v6 address
со следующей формой:
000 ... 000 | FFFF | IPv4 Address
80 bits 16 bits 32 bits
См., Например, соответствующий RFC .
Таким образом, с точки зрения сервера он будет выглядеть так, как будто он исходит от хоста IPv6, и он мог бы использовать IPv4 / IPv6 с двумя стеками.
Если вы хотите увидеть что-то другое, вам нужно изменить способ отправки клиентом своих запросов.