1

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

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

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

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

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

有没有人在使用 C# 代码时遇到了实现 MaxMind 数据的问题?有没有人在 webform 上成功使用 MaxMind 的数据和 C# 代码?我将不胜感激。如果您可以提供实现过程的演练以及一些对您有用(或有效)的示例 C# 代码,我将不胜感激。

4

1 回答 1

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

工作后,它没有返回城市名称,只有国家!真是浪费时间!:(

于 2014-03-22T18:44:43.157 回答