2018-07-06 14:16:49 +02:00
|
|
|
/* $Id: getifaddr.h,v 1.11 2018/07/06 11:47:29 nanard Exp $ */
|
|
|
|
/* vim: tabstop=4 shiftwidth=4 noexpandtab
|
|
|
|
* MiniUPnP project
|
2011-09-28 21:13:20 +02:00
|
|
|
* http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
|
2018-07-06 14:16:49 +02:00
|
|
|
* (c) 2006-2018 Thomas Bernard
|
2011-09-28 21:13:20 +02:00
|
|
|
* This software is subject to the conditions detailed
|
|
|
|
* in the LICENCE file provided within the distribution */
|
|
|
|
|
2012-09-20 17:52:51 -03:00
|
|
|
#ifndef GETIFADDR_H_INCLUDED
|
|
|
|
#define GETIFADDR_H_INCLUDED
|
2011-09-28 21:13:20 +02:00
|
|
|
|
2013-03-23 11:50:57 +01:00
|
|
|
struct in_addr;
|
2013-07-09 15:36:53 +02:00
|
|
|
struct in6_addr;
|
2013-03-23 11:50:57 +01:00
|
|
|
|
2011-09-28 21:13:20 +02:00
|
|
|
/* getifaddr()
|
|
|
|
* take a network interface name and write the
|
|
|
|
* ip v4 address as text in the buffer
|
|
|
|
* returns: 0 success, -1 failure */
|
|
|
|
int
|
2013-03-23 11:50:57 +01:00
|
|
|
getifaddr(const char * ifname, char * buf, int len,
|
|
|
|
struct in_addr * addr, struct in_addr * mask);
|
2011-09-28 21:13:20 +02:00
|
|
|
|
2013-07-09 15:36:53 +02:00
|
|
|
int
|
2014-05-03 10:13:25 +03:00
|
|
|
getifaddr_in6(const char * ifname, int af, struct in6_addr* addr);
|
2013-07-09 15:36:53 +02:00
|
|
|
|
2011-09-28 21:13:20 +02:00
|
|
|
/* find a non link local IP v6 address for the interface.
|
|
|
|
* if ifname is NULL, look for all interfaces */
|
|
|
|
int
|
|
|
|
find_ipv6_addr(const char * ifname,
|
|
|
|
char * dst, int n);
|
|
|
|
|
2018-05-19 13:31:14 +02:00
|
|
|
/* check if address is in private / reserved block (e.g. local area network) */
|
|
|
|
int
|
|
|
|
addr_is_reserved(struct in_addr * addr);
|
|
|
|
|
2011-09-28 21:13:20 +02:00
|
|
|
#endif
|