Imported Upstream version 7.59.0
[platform/upstream/curl.git] / docs / libcurl / opts / CURLINFO_LOCAL_IP.3
1 .\" **************************************************************************
2 .\" *                                  _   _ ____  _
3 .\" *  Project                     ___| | | |  _ \| |
4 .\" *                             / __| | | | |_) | |
5 .\" *                            | (__| |_| |  _ <| |___
6 .\" *                             \___|\___/|_| \_\_____|
7 .\" *
8 .\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
9 .\" *
10 .\" * This software is licensed as described in the file COPYING, which
11 .\" * you should have received as part of this distribution. The terms
12 .\" * are also available at https://curl.haxx.se/docs/copyright.html.
13 .\" *
14 .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
15 .\" * copies of the Software, and permit persons to whom the Software is
16 .\" * furnished to do so, under the terms of the COPYING file.
17 .\" *
18 .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19 .\" * KIND, either express or implied.
20 .\" *
21 .\" **************************************************************************
22 .\"
23 .TH CURLINFO_LOCAL_IP 3 "May 05, 2017" "libcurl 7.59.0" "curl_easy_getinfo options"
24
25 .SH NAME
26 CURLINFO_LOCAL_IP \- get local IP address of last connection
27 .SH SYNOPSIS
28 #include <curl/curl.h>
29
30 CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_LOCAL_IP, char **ip);
31 .SH DESCRIPTION
32 Pass a pointer to a char pointer to receive the pointer to a zero-terminated
33 string holding the IP address of the local end of most recent connection done
34 with this \fBcurl\fP handle. This string may be IPv6 when that is
35 enabled. Note that you get a pointer to a memory area that will be re-used at
36 next request so you need to copy the string if you want to keep the
37 information.
38
39 The \fBip\fP pointer will be NULL or pointing to private memory you MUST NOT
40 free - it gets freed when you call \fIcurl_easy_cleanup(3)\fP on the
41 corresponding CURL handle.
42 .SH PROTOCOLS
43 All
44 .SH EXAMPLE
45 .nf
46 {
47   char *ip;
48
49   curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
50
51   /* Perform the request, res will get the return code */
52   res = curl_easy_perform(curl);
53   /* Check for errors */
54   if((res == CURLE_OK) &&
55      !curl_easy_getinfo(curl, CURLINFO_LOCAL_IP, &ip) && ip) {
56     printf("Local IP: %s\\n", ip);
57   }
58
59   /* always cleanup */
60   curl_easy_cleanup(curl);
61 }
62 .fi
63 .SH AVAILABILITY
64 Added in 7.21.0
65 .SH RETURN VALUE
66 Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
67 .SH "SEE ALSO"
68 .BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
69 .BR CURLINFO_PRIMARY_IP "(3), "