MMDB-Swift 0.5.1

MMDB-Swift 0.5.1

测试已测试
语言语言 CC
许可证 Apache-2.0
发布最后发布2020 年 3 月
SPM支持 SPM

Lex Tang 维护。



MMDB-Swift

Language Version Carthage Compatible SPM Compatible Platform

这是一个小型的 libmaxminddb 包装器,允许您通过 IP 地址查找地理数据。


注意v0.5.0 开始,由于许可证变更,MMDB-Swift 不再捆绑 GeoLite2 数据库。开发者应从 Maxmind 网站 下载二进制版本。

CocoaPods

MMDB-Swift 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中

platform :ios, '8.0'
use_frameworks!
pod "MMDB-Swift"

然后,运行以下命令

pod install

Carthage

要用 Carthage 将 MMDB-Swift 集成到您的 Xcode 项目中,请在您的 Cartfile 中添加以下行

github "lexrus/MMDB-Swift"

运行 carthage update 来构建框架,并将构建好的 MMDB.framework 拖到您的 Xcode 项目中。

Swift 包管理器

Package.swift

import PackageDescription

let package = Package(
          name: "YOUR_AWESOME_PROJECT",
       targets: [],
  dependencies: [
                  .Package(
                    url: "https://github.com/lexrus/MMDB-Swift",
               versions: "0.0.1" ..< Version.max
                  )
                ]
)

使用方法

guard let db = MMDB("PATH_TO_THE_DATABASE") else {
  print("Failed to open DB.")
  return
}
if let country = db.lookup("8.8.4.4") {
  print(country)
}

这将输出

{
  "continent": {
    "code": "NA",
    "names": {
      "ja": "北アメリカ",
      "en": "North America",
      "ru": "Северная Америка",
      "es": "Norteamérica",
      "de": "Nordamerika",
      "zh-CN": "北美洲",
      "fr": "Amérique du Nord",
      "pt-BR": "América do Norte"
    }
  },
  "isoCode": "US",
  "names": {
    "ja": "アメリカ合衆国",
    "en": "United States",
    "ru": "США",
    "es": "Estados Unidos",
    "de": "USA",
    "zh-CN": "美国",
    "fr": "États-Unis",
    "pt-BR": "Estados Unidos"
  }
}

请注意,国家是一个定义为

public struct MMDBContinent {
  var code: String?
  var names: [String: String]?
}

public struct MMDBCountry: CustomStringConvertible {
  var continent = MMDBContinent()
  var isoCode = ""
  var names = [String: String]()
  ...
}

作者

Lex Tang(Twitter: @lexrus

许可协议

MMDB-Swift 在Apache 许可证 2.0 版本下可用。更多信息请参见LICENSE 文件。

GeoLite2 数据库在Creative Commons 知名-相同方式共享 3.0 未局部化许可下分发。