INET6-сокет можно забайндить на IPv4-адрес указанием маппинга v6-v4: ::ffff:127.0.0.1.
1. Выбор протокола отправки и получения пакетов (IPv4/IPv6)
в ручную все ок, а если запихнуть его в сценарии то не работает
Ну, то есть получается, что это implementation defined. То есть один и тот же код может давать разные результаты. Где-то -1 превратится в -1, а где-то в 255.
Арендовать у прова белый статический адрес. Белые адреса - это дополнительная услуга провайдера, обычно стоит денег.
Что у других клиентов у всех белые адреса?