
ネットワーク カードに 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
--interface バリアントの場合と同様に、サイトが IPv4 アドレスのみを受け入れる場合はエラーを受け取ります。
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
-4
およびオプションを使用すると、使用する IP プロトコル スタックをオーバーライドできます-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,,,