|| !((
addr& 0xFF000000) ^ 0x0A000000)
112|| !((
addr& 0xFFF00000) ^ 0xAC100000)
113|| !((
addr& 0xFFFF0000) ^ 0xC0A80000)
131 return!((
addr& 0xFFFF0000) ^ 0xA9FE0000);
157 if(
str&& (!end || *end))
165 const char*
const* tracking_env)
173 #ifdef NCBI_LOCALNET_DEBUG 180 size_t len= strlen(name);
181 const char*
const*
str;
183 for(
str= tracking_env; *
str; ++
str) {
189 #ifdef NCBI_LOCALNET_DEBUG 201 const char*
const* tracking_env)
206 char*p, *q, *
r, *s;
211external = !(s =
strdup(
f)) ? 1
: 0
;
212 for(p = s; p && *p; p = q + strspn(q,
", \t")) {
214q = p + strcspn(p,
", \t");
218 #ifdef NCBI_LOCALNET_DEBUG 243memset(
addr, 0,
sizeof(*
addr));
244 returnexternal ?
"": 0;
255 const char*
const* tracking_env)
262 const char* host = 0;
266memset(&
addr, 0,
sizeof(
addr));
267memset(probe, 0,
sizeof(probe));
268 for(
i= 0;
i<
SizeOf(probe); ++
i) {
293 if(!probe[
i].host)
295 assert(*probe[
i].host || !bad_addr
);
301 #ifdef NCBI_LOCALNET_DEBUG 309host = probe[
i].host;
310 addr= probe[
i].addr;
328host = probe[
i- 1].host;
357 if(1 <=
i&&
i<= 4)
358 addr= probe[
i- 1].addr;
365 if(
buf&& buf_size) {
366 if(host && (
i= strlen(host)) < buf_size)
367memcpy(
buf, host, ++
i);
371 if(probe[1].host && *probe[1].host)
372 free((
void*) probe[1].host
);
378 const char*
const* tracking_env)
387 const char*
const* tracking_env)
396 const char*
const* tracking_env)
static const char * str(char *buf, int n)
#define SOCK_NetToHostLong
unsigned int SOCK_gethostbyname(const char *hostname)
Same as SOCK_gethostbynameEx(,<current API data logging>)
int NcbiIsEmptyIPv6(const TNCBI_IPv6Addr *addr)
Return non-zero if the address is empty (either as NULL or IPv6 or IPv4); return zero otherwise.
unsigned int NcbiIPv6ToIPv4(const TNCBI_IPv6Addr *addr, size_t pfxlen)
Extract and return a network byte order IPv4 embedded address from an IPv6 address,...
TNCBI_IPv6Addr * NcbiIPv4ToIPv6(TNCBI_IPv6Addr *addr, unsigned int ipv4, size_t pfxlen)
Embed a passed network byte order IPv4 address into an IPv6 address using the specified prefix length...
const char * NcbiStringToAddr(TNCBI_IPv6Addr *addr, const char *str, size_t len)
Convert into an IPv6 address, the first "len" (or "strlen(str)" if "len" is 0) bytes of "str",...
static const char * s_SearchTrackingEnv(const char *name, const char *const *tracking_env)
static const char * s_SearchForwardedFor(TNCBI_IPv6Addr *addr, const char *const *tracking_env)
TNCBI_IPv6Addr NcbiGetCgiClientIPv6Ex(ECgiClientIP flag, char *buf, size_t buf_size, const char *const *tracking_env)
Same as NcbiGetCgiClientIPEx but IPv6-aware.
int NcbiIsLocalCgiClient(const char *const *tracking_env)
Return non-zero (true) if called from within a CGI that was invoked by an NCBI local client; zero oth...
int NcbiIsAPIPA(unsigned int ip)
Return non-zero (true) if the IP address (in network byte order) provided as an agrument,...
unsigned int NcbiGetCgiClientIPEx(ECgiClientIP flag, char *buf, size_t buf_size, const char *const *tracking_env)
#define IN_LOOPBACK(addr)
#define X_CLASS_DEF(addr)
unsigned int NcbiGetCgiClientIP(ECgiClientIP flag, const char *const *tracking_env)
Same as NcbiGetCgiClientIPEx(., NULL, 0, .)
TNCBI_IPv6Addr NcbiGetCgiClientIPv6(ECgiClientIP flag, const char *const *tracking_env)
Same as NcbiGetCgiClientIPv6Ex(., NULL, 0, .)
static int s_IsPrivateIP(unsigned int ip)
static int x_IsPrivateIP(unsigned int addr)
static int x_IsAPIPA(unsigned int addr)
int NcbiIsPrivateIP(unsigned int ip)
Return non-zero (true) if the IP address (in network byte order) provided as an agrument,...
static const TNCBI_IPv6Addr * x_StringToAddr(TNCBI_IPv6Addr *addr, const char *str)
ECgiClientIP
Return IP address (in network byte order) of the CGI client, and optionally store the client hostname...
@ eCgiClientIP_TryLeast
Try to detect caller's IP only,not origin.
@ eCgiClientIP_TryAll
Try all env.vars (NI_CLIENT_IPADDR incl.)
#define CORE_LOGF(level, fmt_args)
#define CORE_LOG(level, message)
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4