有没有人在C#webform上成功实现maxmind的免费GeoLiteCity数据库?

时间:2014-01-23 21:13:38

标签: c# asp.net geoip maxmind

我们有几个国际合作伙伴/网站抱怨他们的流量被我们的国内网站(位于美国)“偷走”。我认为最好实施一个免费的geoip服务,为我们的国际用户提供一个重定向选项,如果它们发生在我们的国内网站上。

在研究了免费选项之后,我发现MaxMind提供了一个完整的软件包,其中包含相当准确的IP地址数据选项(包括ipV4和ipv6)。事实上,我们的管理层强烈建议使用MaxMind的实施。

我最近为我的国内网站下载了MaxMind免费的GeoLiteCity.dat和github的C#代码。我发现文档非常含糊,因为它与在控制台应用程序之外的任何内容上实现C#代码有关。

在我在当前网站上实现它之前 - 在我的开发环境中,我成功地在控制台应用程序上测试了数据库的实现和API,然后在aspx页面上成功测试了模拟网站。我目前在开发环境中遇到了可怕的“对象引用未设置为对象实例”错误。

我已经为MaxMind添加了类库,并且还添加了对该类库的引用。

有没有人在使用C#代码时遇到实现MaxMind数据的问题?有没有人在webform上成功使用MaxMind的数据和C#代码?我很感激任何见解。如果您可以提供实现过程的演练,也许还有一些可以为您工作(或工作)的示例C#代码,我将非常感激。

1 个答案:

答案 0 :(得分:0)

我必须指定一个完整的文件系统路径才能让它读取数据库!!我可能已经错过了一些东西,但相对路径无论如何都无法发挥作用!!

var reader = new DatabaseReader(@"C:\Users\[User Name]\documents\visual studio 2013\Projects\glocalmvc\glocalmvc\Controllers\GeoLite2_City.mmdb", MaxMind.Db.FileAccessMode.Memory);

        var omni = reader.Omni("1.1.1.1"); // replace it with a real ip address
在它运作之后,它没有返回城市名称,只有国家!!多么浪费时间! :(