一个用于 libmaxminddb 的小型封装,允许您通过 IP 地址查找地理位置数据。
注意 从 v0.5.0
开始,由于许可协议变更,MMDB-Swift 不再捆绑 GeoLite2 数据库。开发者应从 Maxmind 网站 下载二进制版本。
MMDB-Swift 可以通过 CocoaPods 获取。 要安装它,只需将以下行添加到您的 Podfile
platform :ios, '8.0'
use_frameworks!
pod "MMDB-Swift"
然后,运行以下命令
pod install
要使用 Carthage 将 MMDB-Swift 集成到您的 Xcode 项目中,请将以下行添加到您的 Cartfile
github "lexrus/MMDB-Swift"
运行 carthage update
来构建框架,并将构建好的 MMDB.framework
拖到您的 Xcode 项目中。
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"
}
}
请注意,country 是一个定义为以下内容的结构体
public struct MMDBContinent {
var code: String?
var names: [String: String]?
}
public struct MMDBCountry: CustomStringConvertible {
var continent = MMDBContinent()
var isoCode = ""
var names = [String: String]()
...
}
MMDB-Swift 在 Apache License Version 2.0 许可下发布。 有关更多信息,请参见 LICENSE 文件。
GeoLite2 数据库是在 Creative Commons Attribution-ShareAlike 3.0 Unported License 许可下分发的。