{"id":16959660,"url":"https://github.com/fabiocaccamo/fcipaddressgeocoder","last_synced_at":"2025-09-04T07:33:34.392Z","repository":{"id":18426936,"uuid":"21609378","full_name":"fabiocaccamo/FCIPAddressGeocoder","owner":"fabiocaccamo","description":":iphone: :earth_africa: iOS geocoder for geocode device IP Address location using GeoIP service(s) and a block-based syntax.","archived":false,"fork":false,"pushed_at":"2022-12-13T18:02:59.000Z","size":43,"stargazers_count":114,"open_issues_count":0,"forks_count":17,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-03-14T15:48:53.050Z","etag":null,"topics":["geocode","geocoder","geocoding","geoip","geoip-service","ios","ios-geocoder","ip-address","location","objective-c","pod"],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fabiocaccamo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["fabiocaccamo"]}},"created_at":"2014-07-08T10:54:32.000Z","updated_at":"2023-07-01T08:06:25.000Z","dependencies_parsed_at":"2022-08-18T04:55:20.497Z","dependency_job_id":null,"html_url":"https://github.com/fabiocaccamo/FCIPAddressGeocoder","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabiocaccamo%2FFCIPAddressGeocoder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabiocaccamo%2FFCIPAddressGeocoder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabiocaccamo%2FFCIPAddressGeocoder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabiocaccamo%2FFCIPAddressGeocoder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fabiocaccamo","download_url":"https://codeload.github.com/fabiocaccamo/FCIPAddressGeocoder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243852499,"owners_count":20358271,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["geocode","geocoder","geocoding","geoip","geoip-service","ios","ios-geocoder","ip-address","location","objective-c","pod"],"created_at":"2024-10-13T22:45:40.687Z","updated_at":"2025-03-17T08:37:35.986Z","avatar_url":"https://github.com/fabiocaccamo.png","language":"Objective-C","funding_links":["https://github.com/sponsors/fabiocaccamo"],"categories":[],"sub_categories":[],"readme":"FCIPAddressGeocoder ![Pod version](http://img.shields.io/cocoapods/v/FCIPAddressGeocoder.svg) ![Pod platforms](http://img.shields.io/cocoapods/p/FCIPAddressGeocoder.svg) ![Pod license](http://img.shields.io/cocoapods/l/FCIPAddressGeocoder.svg)\n===================\n\niOS Geocoder for **geocode device IP Address location using GeoIP service(s)** and a block-based syntax.\n\n## Supported Services\n- [FreeGeoIP](http://freegeoip.net/) - [GitHub](https://github.com/fiorix/freegeoip)\n- [IP-Api](http://ip-api.com/)\n- [IPInfo](https://ipinfo.io/)\n- [IPVigilante](https://ipvigilante.com/)\n- [Nekudo](http://geoip.nekudo.com/)\n- [Petabyet](https://www.petabyet.com/api/)\n- [~~Smart-IP~~](http://smart-ip.net/)\n- [Telize](http://www.telize.com/) *(this service is not free anymore, you can spin up your own instance or subscribe to a paid plan)*\n\n*(feel free to suggest other services to support)*\n\n## Requirements \u0026 Dependecies\n- iOS \u003e= 5.0\n- ARC enabled\n- CoreLocation Framework\n\n## Installation\n\n#### CocoaPods:\n`pod 'FCIPAddressGeocoder'`\n\n#### Manual install:\nCopy `FCIPAddressGeocoder.h` and `FCIPAddressGeocoder.m` to your project.\n\n## Usage\n```objective-c\n//the service used by default is FreeGeoIP, but you can set the default service to another one\n//this method will affect the default service/url of all instances, included the shared one\n//if you need to change the default service/url it's recommended to do it application:didFinishLaunching\n[FCIPAddressGeocoder setDefaultService:FCIPAddressGeocoderServiceFreeGeoIP];\n\n//some services like FreeGeoIP are open-source, and you could need to use an instance of it running on your own server\n[FCIPAddressGeocoder setDefaultService:FCIPAddressGeocoderServiceFreeGeoIP andURL:@\"http://127.0.0.1/\"];\n```\n```objective-c\n//you can use the shared instance\nFCIPAddressGeocoder *geocoder = [FCIPAddressGeocoder sharedGeocoder];\n\n//or create a new geocoder\nFCIPAddressGeocoder *geocoder = [FCIPAddressGeocoder new];\n\n//or create a new geocoder which uses a custom instance of the FreeGeoIP service installed on your own server\nFCIPAddressGeocoder *geocoder = [[FCIPAddressGeocoder alloc] initWithService:FCIPAddressGeocoderServiceFreeGeoIP andURL:@\"http://127.0.0.1/\"];\n```\n```objective-c\n//set if the geocoder can use all available services in case of failure of the default one\n//very useful since 3rd party services are not depending by us and could be temporary unavailable or no more active\n//by default this property value is set to YES only if you use the shared geocoder or if you create a geocoder without specifing its service/url\ngeocoder.canUseOtherServicesAsFallback = YES;\n```\n```objective-c\n//IP Address geocoding (geocoding results are cached for 1 minute)\n[geocoder geocode:^(BOOL success) {\n\n    if(success)\n    {\n        //you can access the location info-dictionary containing all informations using 'geocoder.locationInfo'\n        //you can access the location using 'geocoder.location'\n        //you can access the location city using 'geocoder.locationCity' (it could be nil)\n        //you can access the location country using 'geocoder.locationCountry'\n        //you can access the location country-code using 'geocoder.locationCountryCode'\n    }\n    else {\n        //you can debug what's going wrong using: 'geocoder.error'\n    }\n}];\n```\n```objective-c\n//check if geocoding\n[geocoder isGeocoding]; //returns YES or NO\n```\n```objective-c\n//cancel geocoding\n[geocoder cancelGeocode];\n```\n\n## License\nReleased under [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabiocaccamo%2Ffcipaddressgeocoder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffabiocaccamo%2Ffcipaddressgeocoder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabiocaccamo%2Ffcipaddressgeocoder/lists"}