Add func to get country code-3 name by IPv4/6 address

Signed-off-by: Vadim Kochan <vadi...@gmail.com>
---
 geoip.c | 14 ++++++++++++++
 geoip.h |  2 ++
 2 files changed, 16 insertions(+)

diff --git a/geoip.c b/geoip.c
index ee654a6..917b1a7 100644
--- a/geoip.c
+++ b/geoip.c
@@ -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
diff --git a/geoip.h b/geoip.h
index 66ed20b..0cbd619 100644
--- a/geoip.h
+++ b/geoip.h
@@ -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);
-- 
2.6.3

-- 
You received this message because you are subscribed to the Google Groups 
"netsniff-ng" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to netsniff-ng+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to