当前位置: 首页 > 面试题库 >

查找位置的最佳node.js模块?

孟俊晖
2023-03-14
问题内容

我找到了几个node.js模块,用于使用ip地址查找有关客户端位置和网络的信息。

要求:

  1. 位置-国家,城市,州,纬度,经度等

  2. 网络-Internet服务提供商,Internet连接类型和Internet速度等。

  3. 数据准确性-最大可能性。

注意: 寻找服务器端解决方案。

上面提到的模块使用maxmind数据。而且我还阅读了有关maxmind数据准确性的信息。

我很少选择上面的node.js模块,我想知道有没有更好的node.js框架可用于查找满足我的要求的信息或任何其他可移植到node.js的语言插件。

任何想法都会很棒。


问题答案:

可以使用基于IP的地理位置,但不是很准确。因此,我建议您考虑采用一种混合方法,例如尝试通过浏览器内的HTML5地理位置API获取用户位置,并在必要时回退到服务器端。

我查看了可用于node.js的两个最常用的geoip /
-location模块,它们都使用MaxMind提供的数据集。AFAIK,您必须手动使这些数据库保持最新状态2,这显然是令人沮丧的。因此,您可以考虑编写一些同步服务/脚本,该服务/脚本每月更新一次数据库。(有关MaxMinds免费解决方案的更多信息,请参见此处)。

kuno/GeoIP是GeoIP绑定,因此它的核心是使用libGeoIP
C库,这可以,但可能不如纯JavaScript实现所bluesmoon/node- geoip提供的可移植性。两者都可以,这取决于您是您更喜欢哪个库。在性能方面,您必须做一些基准测试(如果本主题对您而言很重要)…对于该模块(C绑定/本机)的哪种类型更快,没有普遍的答案。

如果您愿意花一些钱,也可以研究一下MaxMinds Web
Service
,它是一个简单的REST
API,将是最精确的方法。该文档非常好–因此入门不会有问题。



 类似资料:
  • 问题内容: 我的Swing应用程序必须向用户显示一个模式对话框。很抱歉没有发布SSCCE。 可能是或。 我在网络事件中像这样启动对话框 问题是为我的对话框设置最佳位置。 1)如果将其设置为绝对值,并且我将应用程序框架移至第二个屏幕,则在第一个屏幕上显示对话框,这很奇怪。 2)如果为JFrame设置了相对值,则可能是用户将应用程序框架移到屏幕外部,并且相对位置的对话框对用户不可见。而且由于它是模态的

  • 问题内容: 在我们当前的自动化中(使用Selenium / WebDriver / Java),我们使用 非常 广泛。例如: 根据定义,可以使用以下内容找到选择器:using,id,名称,className,css,tagName,linkText,partialLinkText和xpath。 最近,我们的前端开发人员提议我们实现一个以’test =’开头的新属性类。我认为这是一个好主意,因为我们

  • springboot多模块项目中,vo,dto应该放在那一层比较合适? 如题,假设项目有如下包 demo-web demo-service demo-dao demo-common vo,dto应该放在那一层比较合适? dao层放mapper和DO(也就是和数据库表对应的类) 是毋庸置疑的。 VO我的理解是返回给前端页面的对象,按理说应该放在web模块比较合适,但是有时候我们可以在dao层直接写个

  • 我需要得到一个32位数字中的1位数字,其中只有一个1位(总是)。在C++或ASM中最快的方法。 例如

  • 我们已经看到,较大的页表会导致额外的开销,因为必须将该表分成页面,然后将其存储到主内存中。 我们担心的是执行进程而不是执行页表。 页表为执行过程提供了支持。 页面越大,开销越高。 例如,我们知道 - 将会有100万页这是相当大的数字。 但是,尝试使页面大小更大,例如:2MB。 然后,页表中的页数=(2 X 2 ^ 30)/(2 X 2 ^ 20)= 1K页。 如果比较两种情况,可以知道页面大小与页

  • 问题内容: 我们有一个REST API,客户端可以在其中提供代表Java Enums中服务器上定义的值的参数。 因此,我们可以提供一个描述性错误,我们将此方法添加到每个Enum中。似乎我们只是在复制代码(错误)。有更好的做法吗? 更新 :提供的默认错误消息为。我想提供一个来自API的更具描述性的错误。 问题答案: 可能可以实现通用静态方法。 像这样 那么你就可以 或显式调用实用程序类查找方法。