
У меня на сетевой карте есть адреса IPv4 и IPv6. Когда я отправляю запрос с помощью curl, я хочу, чтобы использовался только соответствующий IPv4 или IPv6, и не было никаких резервных вариантов, например, при преобразовании IPv6 в IPv4.
curl --interface XXXX: c020: XXXX: e601: XXXX: 596c: XXXX: db97 http://ip4only.me/api/
curl: (45) bind failed with error 22: Invalid argument
curl -x http: // [2603: XXXX: 8003: e601: XXXX: 596c: XXXX: db97]: 8080 http://ip4only.me/api/
IPv4,130.XX.XXX.81
Я хотел бы получить сообщение об ошибке, если сайт принимает только адреса IPv4, как в варианте --interface.
Переадресация IPv4 отключена.
ubuntu @ app-1: ~ $ sudo grep -r ip_forward / etc
/etc/ufw/sysctl.conf:#net/ipv4/ip_forward=1
/etc/sysctl.conf:#net.ipv4.ip_forward=1
Видимо, пересылка все равно происходит, когда я отправляю его с портом.
решение1
Вы можете переопределить, какой стек протоколов IP используется, с помощью опций -4
и -6
, которые ограничивают его IPv4 или IPv6 соответственно. Рассмотрите:
$ curl -6 http://ip4only.me/api/
curl: (6) Could not resolve host: ip4only.me
$ curl -4 http://ip4only.me/api/
IPv4,198.51.100.84,Remaining fields reserved for future use,,,