Skip to content

A tiny wrapper for libmaxminddb which allows you to lookup Geo data by IP address.

License

Notifications You must be signed in to change notification settings

bjzhou/MMDB-Swift

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MMDB-Swift

Language Version Carthage Compatible Platform

A tiny wrapper for libmaxminddb which allows you to lookup Geo data by IP address.

This product includes GeoLite2 data created by MaxMind, available from http://www.maxmind.com.

CocoaPods

MMDB-Swift is available through CocoaPods. To install it, simply add the following line to your Podfile:

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

Then, run the following command:

pod install

Carthage

To integrate MMDB-Swift into your Xcode project using Carthage, add the following line to your Cartfile:

github "lexrus/MMDB-Swift"

Run carthage update to build the frameworks and drag the built MMDB.framework into your Xcode project.

Swift Package Manager

Install Swift Package Manager. Edit your Package.swift file:

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)
	]
)

Usage

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

This outputs:

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

Notice that country is a struct defined as:

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

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

Author

Lex Tang (Twitter: @lexrus)

License

MMDB-Swift is available under the Apache License Version 2.0. See the LICENSE file for more info.

The GeoLite2 databases are distributed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.

About

A tiny wrapper for libmaxminddb which allows you to lookup Geo data by IP address.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 90.3%
  • Swift 7.7%
  • Ruby 1.2%
  • Objective-C 0.8%