Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CURLOPT_INTERFACE(3)	    Library Functions Manual	    CURLOPT_INTERFACE(3)

NAME
     CURLOPT_INTERFACE - source interface for outgoing traffic

SYNOPSIS
     #include <curl/curl.h>

     CURLcode curl_easy_setopt(CURL *handle, CURLOPT_INTERFACE, char *interface);

DESCRIPTION
     Pass  a  char  pointer as parameter. This sets the interface name to use as
     outgoing network interface. The name can be an interface name,  an  IP  ad-
     dress, or a hostname. If you prefer one of these, you can use the following
     special prefixes:

     *	if!<name>  -  Interface  name  *  host!<name> - IP address or hostname *
     ifhost!<interface>!<host> - Interface name and IP address or hostname

     If if! or ifhost! is specified but the parameter does not match an existing
     interface, CURLE_INTERFACE_FAILED is returned  from  the  libcurl	function
     used to perform the transfer.

     libcurl  does  not support using network interface names for this option on
     Windows.

     We strongly advise against specifying the interface with a hostname, as  it
     causes  libcurl  to  do a blocking name resolve call to retrieve the IP ad-
     dress.  That name resolve operation does not  use	DNS-over-HTTPS	even  if
     CURLOPT_DOH_URL(3) is set.

     The  application does not have to keep the string around after setting this
     option.

     Using this option multiple times makes the last  set  string  override  the
     previous ones. Set it to NULL to disable its use again.

DEFAULT
     NULL, use whatever the TCP stack finds suitable

PROTOCOLS
     This functionality affects all supported protocols

EXAMPLE
     int main(void)
     {
       CURL *curl = curl_easy_init();
       if(curl) {
	 CURLcode result;
	 curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/foo.bin");

	 curl_easy_setopt(curl, CURLOPT_INTERFACE, "eth0");

	 result = curl_easy_perform(curl);

	 curl_easy_cleanup(curl);
       }
     }

HISTORY
     The if! and host! syntax was added in 7.24.0.

     The ifhost! syntax was added in 8.9.0.

AVAILABILITY
     Added in curl 7.3

RETURN VALUE
     curl_easy_setopt(3) returns a CURLcode indicating success or error.

     CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
     libcurl-errors(3).

SEE ALSO
     CURLOPT_LOCALPORT(3), CURLOPT_SOCKOPTFUNCTION(3), CURLOPT_TCP_NODELAY(3)

libcurl 			   2026-06-11		    CURLOPT_INTERFACE(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=CURLOPT_INTERFACE&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help