1 /** 2 * ______ ___ 3 * / ____/___ / | _____________ __________ 4 * / / __/ __ \/ /| |/ ___/ ___/ _ \/ ___/ ___/ 5 * / /_/ / /_/ / ___ / /__/ /__/ __(__ |__ ) 6 * \____/\____/_/ |_\___/\___/\___/____/____/ 7 * 8 * The MIT License (MIT) 9 * Copyright (c) 2009-2020 Gerardo Orellana <hello @ goaccess.io> 10 * 11 * Permission is hereby granted, free of charge, to any person obtaining a copy 12 * of this software and associated documentation files (the "Software"), to deal 13 * in the Software without restriction, including without limitation the rights 14 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 * copies of the Software, and to permit persons to whom the Software is 16 * furnished to do so, subject to the following conditions: 17 * 18 * The above copyright notice and this permission notice shall be included in all 19 * copies or substantial portions of the Software. 20 * 21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 27 * SOFTWARE. 28 */ 29 30 #if HAVE_CONFIG_H 31 #include <config.h> 32 #endif 33 34 #ifndef GEOIP_H_INCLUDED 35 #define GEOIP_H_INCLUDED 36 37 #include "commons.h" 38 39 #define CITY_LEN 47 + 1 /* max string length for a city */ 40 #define CONTINENT_LEN 47 + 1 /* max string length for a country */ 41 #define COUNTRY_LEN 48 + 3 /* Country + two-letter Code */ 42 43 typedef struct GLocation_ { 44 char city[CITY_LEN]; 45 char continent[CONTINENT_LEN]; 46 int hits; 47 } GLocation; 48 49 int is_geoip_resource (void); 50 int set_geolocation (char *host, char *continent, char *country, char *city); 51 void geoip_free (void); 52 void geoip_get_city (const char *ip, char *location, GTypeIP type_ip); 53 void geoip_get_continent (const char *ip, char *location, GTypeIP type_ip); 54 void geoip_get_country (const char *ip, char *location, GTypeIP type_ip); 55 void init_geoip (void); 56 57 #endif // for #ifndef GEOIP_H 58