从节点js中的IP地址获取时区

Getting timezone from IP address in node js

从 node.js 中的 ip 获取时区的最简单和最好的方法是什么?理想情况下不调用网络服务(也欢迎任何免费的网络服务解决方案)。

直到现在我已经设法找到了 2 个字母 ISO-3166-1 国家代码, latitude/longitude, ISO-3166-2 子国家代码FIPS 10-4 子国家代码 和来自 npm 的 城市名称模块 geoip-lite

我该如何将这些数据转换为时区或 utc 偏移量?或者更简单的方法是直接将 ip 映射到时区。

satelize 可以做到。

var satelize = require('satelize');
satelize.satelize({ip:'46.19.37.108'}, function(err, payload) {
});

输出包括时区

{
    "ip": "46.19.37.108",
    "continent_code": "EU",
    "continent": {
      "de": "Europa",
      "en": "Europe"
    },
    "country_code": "NL",
    "country": {
      "de": "Niederlande",
      "en": "Netherlands"
    },
    "latitude": 52.5,
    "longitude": 5.75,
    "timezone":"Europe/Amsterdam"
}