diff options
author | Vadim Kochan <vadim4j@gmail.com> | 2016-04-17 20:31:24 +0300 |
---|---|---|
committer | Tobias Klauser <tklauser@distanz.ch> | 2016-04-18 16:25:10 +0200 |
commit | f61f39d3972960d795d3d5e5fe6e16179591e2bb (patch) | |
tree | 591f25d671ee3494ef2d4cdb1c6fcbb6506456ce | |
parent | 74babd0fa3cb34b247222c751c928b76fc84df36 (diff) |
geoip: Allow to get country 3-code
Add func to get country code-3 name by IPv4/6 address
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
-rw-r--r-- | geoip.c | 14 | ||||
-rw-r--r-- | geoip.h | 2 |
2 files changed, 16 insertions, 0 deletions
@@ -339,6 +339,20 @@ const char *geoip6_country_name(struct sockaddr_in6 *sa) return GeoIP_country_name_by_ipnum_v6(gi6_country, sa->sin6_addr); } +const char *geoip4_country_code3_name(struct sockaddr_in *sa) +{ + bug_on(gi4_country == NULL); + + return GeoIP_country_code3_by_ipnum(gi4_country, ntohl(sa->sin_addr.s_addr)); +} + +const char *geoip6_country_code3_name(struct sockaddr_in6 *sa) +{ + bug_on(gi6_country == NULL); + + return GeoIP_country_code3_by_ipnum_v6(gi6_country, sa->sin6_addr); +} + static int fdout, fderr; /* GeoIP people were too stupid to come to the idea that you could set @@ -17,6 +17,8 @@ extern const char *geoip4_region_name(struct sockaddr_in *sa); extern const char *geoip6_region_name(struct sockaddr_in6 *sa); extern const char *geoip4_country_name(struct sockaddr_in *sa); extern const char *geoip6_country_name(struct sockaddr_in6 *sa); +extern const char *geoip4_country_code3_name(struct sockaddr_in *sa); +extern const char *geoip6_country_code3_name(struct sockaddr_in6 *sa); extern float geoip4_longitude(struct sockaddr_in *sa); extern float geoip4_latitude(struct sockaddr_in *sa); extern float geoip6_longitude(struct sockaddr_in6 *sa); |