我们有几个国际合作伙伴/网站抱怨他们的流量被我们的国内网站“窃取”(位于美国)。我认为最好实现一个免费的geoip服务,为我们的国际用户提供一个重定向选项,如果它们发生在我们的国内网站上,就可以重定向到他们合适的网站。
在研究了免费选项后,我发现MaxMind提供了一个完整的包,其中包含一个用于相当准确的IPaddress数据的选项(包括ipV4和ipv6 )。事实上,我们的管理层强烈建议使用MaxMind的实现。
我最近在我的国内网站上下载了MaxMind的免费GeoLiteCity.dat和github的C#代码。我发现文档相当模糊,因为它涉及到在控制台应用程序以外的任何应用程序上实现他们的C#代码。
在我目前的网站上实现它之前-在我的开发环境中,我成功地在控制台应用程序上测试了数据库和API的实现,然后在一个模拟网站的aspx页面上成功地进行了测试。我目前在我的开发环境中遇到了可怕的“对象引用未设置为对象的实例”错误。
我已经为MaxMind添加了类库,还添加了对该类库的引用。
有人在使用C#代码实现MaxMind的数据时遇到过问题吗?有没有人成功地在webform上使用了MaxMind的数据和C#代码?如果您有任何见解,我将不胜感激。如果您能提供实现过程的演练,或许还能提供一些对您有效(或有效)的C#示例代码,我将不胜感激。
发布于 2014-03-23 02:44:43
我必须指定一个完整的文件系统路径才能读取数据库!!我可能遗漏了一些东西,但无论如何相对路径都不起作用!
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在它工作后,它没有返回城市名称,只有国家名称!太浪费时间了!
https://stackoverflow.com/questions/21319445
复制相似问题