如何通过IP地址获取国家名称和/或代码?
抱歉问了这么幼稚的问题,但是我该如何用 C++ 来做到这一点?我需要使用给定的 IP 地址获取国家/地区名称及其 2 个字母或 3 个字母的 ISO 代码(或任何名称)。有什么办法可以轻松做到这一点吗?
我发现的唯一两种方法是使用 GeoIP C 库或下载免费数据库,但是有更动态的方法吗?我的意思是,是否有一个带有最新数据库的免费网络服务,我可以使用curl或其他东西来实现我的目的?
提前致谢。
Sorry for so noobish question but how can I do it with C++? I need to get country names and their 2-letter or 3-letter ISO codes (or whatever it's called) using a given IP address. Is there any way to do this easily?
The only two ways I found are to use GeoIP C library or to download a free database but is there something more dynamic? I mean, is there a free web-service with up-to-date db I can utilize for my purpose using curl or something?
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
MaxMind.com 公开了一组用于地理定位的网络服务。它们不是免费的,但每次查找都很便宜。
我的一个客户使用他们的城市级查找服务,每个结果都会缓存一段合理的时间(从内存开始,2 或 3 周),因为 IP 地址块不会经常更改位置。
该应用程序还会计算实际查找的次数,以便在订阅中剩余的数量变少时发送管理通知,以便可以手动充值。
我还在多个应用程序中使用可下载的数据库,并通过计划的更新过程来保持其最新状态。
MaxMind.com exposes a set of web services for geolocation. They're not free, but cheap per lookup.
One of my clients uses their city-level lookup service, with each result cached for a reasonable period (from memory, 2 or 3 weeks), since IP address blocks don't change location that often.
The application also counts the number of actual lookups to send an admin notification when the number remaining in the subscription gets low, so it can be topped up manually.
I also use the downloadable database in several applications, with a scheduled update process to keep it up to date.
http://www.hostip.info 提供 API。
http://www.hostip.info provides an API.