✨ Обновлена обработка IPv6 адресов в функции получения IP-адреса клиента
- Добавлена поддержка IPv4-mapped IPv6 адресов, позволяющая корректно извлекать IPv4 адреса из формата ::ffff:192.168.1.1. - Оптимизирована логика обработки IPv6 адресов для улучшения точности получения клиентского IP.
This commit is contained in:
parent
ee86fa303f
commit
323f96a502
@ -327,7 +327,10 @@ function getClientIP(req) {
|
|||||||
ip = ip.replace(/[[\]]/g, "");
|
ip = ip.replace(/[[\]]/g, "");
|
||||||
|
|
||||||
// Обрабатываем IPv6 адреса
|
// Обрабатываем IPv6 адреса
|
||||||
if (ip.includes("::")) {
|
if (ip.startsWith("::ffff:")) {
|
||||||
|
// IPv4-mapped IPv6 address (::ffff:192.168.1.1)
|
||||||
|
ip = ip.substring(7); // Убираем "::ffff:"
|
||||||
|
} else if (ip.includes("::")) {
|
||||||
const ipv6Match = ip.match(/^(\[)?([^\]]+)(\])?(:(\d+))?$/);
|
const ipv6Match = ip.match(/^(\[)?([^\]]+)(\])?(:(\d+))?$/);
|
||||||
if (ipv6Match) {
|
if (ipv6Match) {
|
||||||
ip = ipv6Match[2];
|
ip = ipv6Match[2];
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user