cmdline-opts/interface.md: expand the documentation

Explain the syntax it supports.

Closes #13882
This commit is contained in:
Daniel Stenberg 2024-06-05 00:06:28 +02:00
parent b049388d47
commit 68680ba544
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
3 changed files with 38 additions and 11 deletions

View File

@ -119,10 +119,10 @@ CMake
cmake cmake
CMake's CMake's
cmake's cmake's
CNAME
CNAMEs
CMakeLists CMakeLists
CNA CNA
CNAME
CNAMEs
CodeQL CodeQL
codeql codeql
CODESET CODESET
@ -209,9 +209,9 @@ EBCDIC
ECC ECC
ECDHE ECDHE
ECH ECH
ecl
ECHConfig ECHConfig
ECHConfigList ECHConfigList
ecl
ECONNREFUSED ECONNREFUSED
eCOS eCOS
EFnet EFnet
@ -358,6 +358,7 @@ ifdef
ifdefed ifdefed
Ifdefs Ifdefs
ifdefs ifdefs
ifhost
IIS IIS
ILE ILE
Illumos Illumos

View File

@ -3,7 +3,7 @@ c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl SPDX-License-Identifier: curl
Long: interface Long: interface
Arg: <name> Arg: <name>
Help: Use network INTERFACE (or address) Help: Use network interface
Category: connection Category: connection
Added: 7.3 Added: 7.3
Multi: single Multi: single
@ -11,15 +11,41 @@ See-also:
- dns-interface - dns-interface
Example: Example:
- --interface eth0 $URL - --interface eth0 $URL
- --interface "host!10.0.0.1" $URL
- --interface "if!enp3s0" $URL
--- ---
# `--interface` # `--interface`
Perform an operation using a specified interface. You can enter interface Perform the operation using a specified interface. You can enter interface
name, IP address or hostname. An example could look like: name, IP address or hostname. If you prefer to be specific, you can use the
following special syntax:
curl --interface eth0:1 https://www.example.com/ ## if!<name>
On Linux it can be used to specify a **VRF**, but the binary needs to either Interface name. If the provided name does not match an existing interface,
have **CAP_NET_RAW** or to be run as root. More information about Linux curl returns with error 45.
**VRF**: https://www.kernel.org/doc/Documentation/networking/vrf.txt
## host!<name>
IP address or hostname.
## ifhost!<interface>!<host>
Interface name and IP address or hostname. This syntax requires libcurl 8.9.0
or later.
If the provided name does not match an existing interface, curl returns with
error 45.
##
curl does not support using network interface names for this option on
Windows.
That name resolve operation if a hostname is provided does **not** use
DNS-over-HTTPS even if --doh-url is set.
On Linux this option can be used to specify a **VRF** (Virtual Routing and
Forwarding) device, but the binary then needs to either have the
**CAP_NET_RAW** capability set or to be run as root.

View File

@ -304,7 +304,7 @@ const struct helptxt helptext[] = {
"Allow insecure server connections", "Allow insecure server connections",
CURLHELP_TLS | CURLHELP_SFTP | CURLHELP_SCP}, CURLHELP_TLS | CURLHELP_SFTP | CURLHELP_SCP},
{" --interface <name>", {" --interface <name>",
"Use network INTERFACE (or address)", "Use network interface",
CURLHELP_CONNECTION}, CURLHELP_CONNECTION},
{" --ipfs-gateway <URL>", {" --ipfs-gateway <URL>",
"Gateway for IPFS", "Gateway for IPFS",