{ "info": { "author": "The Udger Team", "author_email": "info@udger.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries" ], "description": "Udger client for Python (data ver. 3)\n=====================================\n\nLocal parser is very fast and accurate useragent string detection solution. Enables developers to locally install and integrate a highly-scalable product.\nWe provide the detection of the devices (personal computer, tablet, Smart TV, Game console etc.), operating system and client SW type (browser, e-mail client etc.).\nIt also provides information about IP addresses (Public proxies, VPN services, Tor exit nodes, Fake crawlers, Web scrapers .. etc.)\n\n- Tested with more the 50.000 unique user agents.\n- Up to date data provided by https://udger.com/\n- Support for Python 3\n\nEnjoy!\n\nInstall using pip\n-----------------\n\n\t$ pip install udger\n\nInstall from git repo\n---------------------\n\n\t$ git clone https://github.com/udger/udger-python\n\t$ cd udger-python/\n\t# python setup.py install\n\nAutomatic updates download\n--------------------------\n\nFor data auto update, please use Udger data updater (https://udger.com/support/documentation/?doc=62)\n\nHelp us\n-------\n\nFeel free to send us a Pull Request on GitHub to help us make Udger for Python better.\nOr just let us know of any issues you encounter.\n\nThank you!\n\nUsage\n-----\n\n\t$ python\n\t>>> from pprint import pprint\n\t>>> from udger import Udger\n\t>>> udger = Udger()\n\t>>>\n\t>>> result = udger.parse_ua(\n\t... 'Mozilla/5.0 (iPad; CPU OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53'\n\t... )\n\t>>> pprint(result)\n\t{'crawler_category': None,\n\t 'crawler_category_code': None,\n\t 'crawler_last_seen': None,\n\t 'crawler_respect_robotstxt': None,\n\t 'device_brand': 'Apple',\n\t 'device_brand_code': 'apple',\n\t 'device_brand_homepage': 'http://www.apple.com/',\n\t 'device_brand_icon': 'apple.png',\n\t 'device_brand_icon_big': 'apple_big.png',\n\t 'device_brand_info_url': 'https://udger.com/resources/ua-list/devices-brand-detail?brand=apple',\n\t 'device_class': 'Tablet',\n\t 'device_class_code': 'tablet',\n\t 'device_class_icon': 'tablet.png',\n\t 'device_class_icon_big': 'tablet_big.png',\n\t 'device_class_info_url': 'https://udger.com/resources/ua-list/device-detail?device=Tablet',\n\t 'device_marketname': 'iPad',\n\t 'os': 'iOS 7',\n\t 'os_code': 'ios_7',\n\t 'os_family': 'iOS',\n\t 'os_family_code': 'ios',\n\t 'os_family_vendor': 'Apple Inc.',\n\t 'os_family_vendor_code': 'apple_inc',\n\t 'os_family_vendor_homepage': 'http://www.apple.com/',\n\t 'os_homepage': 'https://en.wikipedia.org/wiki/IOS_7',\n\t 'os_icon': 'iphone.png',\n\t 'os_icon_big': 'iphone_big.png',\n\t 'os_info_url': 'https://udger.com/resources/ua-list/os-detail?os=iOS%207',\n\t 'ua': 'Safari mobile 7.0',\n\t 'ua_class': 'Mobile browser',\n\t 'ua_class_code': 'mobile_browser',\n\t 'ua_engine': 'WebKit',\n\t 'ua_family': 'Safari mobile',\n\t 'ua_family_code': 'safari_mobile',\n\t 'ua_family_homepage': 'https://en.wikipedia.org/wiki/Safari_%28web_browser%29',\n\t 'ua_family_icon': 'safari.png',\n\t 'ua_family_icon_big': 'safari_big.png',\n\t 'ua_family_info_url': 'https://udger.com/resources/ua-list/browser-detail?browser=Safari%20mobile',\n\t 'ua_family_vendor': 'Apple Inc.',\n\t 'ua_family_vendor_code': 'apple_inc',\n\t 'ua_family_vendor_homepage': 'http://www.apple.com/',\n\t 'ua_string': 'Mozilla/5.0 (iPad; CPU OS 7_0 like Mac OS X) '\n\t 'AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 '\n\t 'Mobile/11A465 Safari/9537.53',\n\t 'ua_uptodate_current_version': '',\n\t 'ua_version': '7.0',\n\t 'ua_version_major': '7'}\n\t>>>\n\t>>> result = udger.parse_ua('Some thing')\n\t>>> pprint(result)\n\t{'crawler_category': None,\n\t 'crawler_category_code': None,\n\t 'crawler_last_seen': None,\n\t 'crawler_respect_robotstxt': None,\n\t 'device_brand': None,\n\t 'device_brand_code': None,\n\t 'device_brand_homepage': None,\n\t 'device_brand_icon': None,\n\t 'device_brand_icon_big': None,\n\t 'device_brand_info_url': None,\n\t 'device_class': None,\n\t 'device_class_code': None,\n\t 'device_class_icon': None,\n\t 'device_class_icon_big': None,\n\t 'device_class_info_url': None,\n\t 'device_marketname': None,\n\t 'os': None,\n\t 'os_code': None,\n\t 'os_family': None,\n\t 'os_family_code': None,\n\t 'os_family_vendor': None,\n\t 'os_family_vendor_code': None,\n\t 'os_family_vendor_homepage': None,\n\t 'os_homepage': None,\n\t 'os_icon': None,\n\t 'os_icon_big': None,\n\t 'os_info_url': None,\n\t 'ua': None,\n\t 'ua_class': 'Unrecognized',\n\t 'ua_class_code': 'unrecognized',\n\t 'ua_engine': None,\n\t 'ua_family': None,\n\t 'ua_family_code': None,\n\t 'ua_family_homepage': None,\n\t 'ua_family_icon': None,\n\t 'ua_family_icon_big': None,\n\t 'ua_family_info_url': None,\n\t 'ua_family_vendor': None,\n\t 'ua_family_vendor_code': None,\n\t 'ua_family_vendor_homepage': None,\n\t 'ua_string': 'Some thing',\n\t 'ua_uptodate_current_version': None,\n\t 'ua_version': None,\n\t 'ua_version_major': None}\n\t>>>\n\t>>> result = udger.parse_ip('69.89.31.120')\n\t>>> pprint(result)\n\t{'crawler_category': None,\n\t 'crawler_category_code': None,\n\t 'crawler_family': None,\n\t 'crawler_family_code': None,\n\t 'crawler_family_homepage': None,\n\t 'crawler_family_icon': None,\n\t 'crawler_family_info_url': None,\n\t 'crawler_family_vendor': None,\n\t 'crawler_family_vendor_code': None,\n\t 'crawler_family_vendor_homepage': None,\n\t 'crawler_last_seen': None,\n\t 'crawler_name': None,\n\t 'crawler_respect_robotstxt': None,\n\t 'crawler_ver': None,\n\t 'crawler_ver_major': None,\n\t 'datacenter_homepage': 'https://www.bluehost.com/',\n\t 'datacenter_name': 'Bluehost Inc.',\n\t 'datacenter_name_code': 'bluehost',\n\t 'ip': '69.89.31.120',\n\t 'ip_city': 'Provo',\n\t 'ip_classification': 'Web scraper',\n\t 'ip_classification_code': 'web_scraper',\n\t 'ip_country': 'United States',\n\t 'ip_country_code': 'US',\n\t 'ip_hostname': 'box320.bluehost.com',\n\t 'ip_last_seen': '2016-09-17 12:13:25',\n\t 'ip_ver': 4}\n\t>>>\n\t>>> result = udger.parse_ip('108.61.199.93')\n\t>>> pprint(result)\n\t{'crawler_category': 'Site monitor',\n\t 'crawler_category_code': 'site_monitor',\n\t 'crawler_family': 'PINGOMETER',\n\t 'crawler_family_code': 'pingometer',\n\t 'crawler_family_homepage': '',\n\t 'crawler_family_icon': 'bot_pingometer.png',\n\t 'crawler_family_info_url': 'https://udger.com/resources/ua-list/bot-detail?bot=PINGOMETER',\n\t 'crawler_family_vendor': 'Pingometer, LLC',\n\t 'crawler_family_vendor_code': 'pingometer_llc',\n\t 'crawler_family_vendor_homepage': 'http://pingometer.com/',\n\t 'crawler_last_seen': '2016-09-17 12:15:38',\n\t 'crawler_name': 'PINGOMETER',\n\t 'crawler_respect_robotstxt': 'no',\n\t 'crawler_ver': '',\n\t 'crawler_ver_major': '',\n\t 'datacenter_homepage': 'https://www.choopa.com/',\n\t 'datacenter_name': 'Choopa, LLC.',\n\t 'datacenter_name_code': 'choopa',\n\t 'ip': '108.61.199.93',\n\t 'ip_city': 'Amsterdam',\n\t 'ip_classification': 'Crawler',\n\t 'ip_classification_code': 'crawler',\n\t 'ip_country': 'Netherlands',\n\t 'ip_country_code': 'NL',\n\t 'ip_hostname': '108.61.199.93.vultr.com',\n\t 'ip_last_seen': '2016-09-17 12:00:31',\n\t 'ip_ver': 4}\n \nData directory\n--------------\n\n``Udger()`` parser expects the data file to be placed in the system temporary\ndirectory as returned by the ``tempfile.gettempdir()``.\n\nYou may override the path using the argument like this:\n\n\tudger = Udger('/var/cache/udger/')\n\n\nForked from\n-----------\n\nBased on the code by Jure Ham (jure.ham@zemanta.com),\nhttps://github.com/hamaxx/uasparser2\n\nPreviously, a python version of https://github.com/kaittodesk/uasparser2\nby Hicro Kee (http://hicrokee.com) email: hicrokee AT gmail DOT com\nand modified by Michal Molhanec http://molhanec.net\n\nDocumentation for developers\n----------------------------\n\nhttps://udger.com/pub/documentation/parser/Python/html/\n\nAuthor\n------\n\nThe Udger.com Team (info@udger.com)\n\nOld v1 format\n-------------\n\nIf you still use the previous format of the db (v1), please see the branch ``old_format_v1``\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/udger/udger-python", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "udger", "package_url": "https://pypi.org/project/udger/", "platform": "any", "project_url": "https://pypi.org/project/udger/", "project_urls": { "Homepage": "https://github.com/udger/udger-python" }, "release_url": "https://pypi.org/project/udger/4.0.0/", "requires_dist": null, "requires_python": "", "summary": "Fast and reliable User Agent parser and IP classifier for Python", "version": "4.0.0" }, "last_serial": 2718703, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "a64f80ebce70a8cf1b874a51088fa2be", "sha256": "31d0300371057eb4d734d496e7aaaa2a8bb48b2b5f53668e0f0c66dc53c32a15" }, "downloads": -1, "filename": "udger-0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "a64f80ebce70a8cf1b874a51088fa2be", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8196, "upload_time": "2016-01-05T23:18:26", "url": "https://files.pythonhosted.org/packages/1e/ef/6431ca383401a4dd9fc18b67984b33044316001f9ce33cfd85edbbb3a825/udger-0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "792ff64b8f09e0e3444d00ad5627634e", "sha256": "dbfa78e45311f203e09232f9748ae68aca45317e20e5c3c6ce9ba06022ee3f7a" }, "downloads": -1, "filename": "udger-0.1.tar.gz", "has_sig": false, "md5_digest": "792ff64b8f09e0e3444d00ad5627634e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5188, "upload_time": "2016-01-05T23:17:57", "url": "https://files.pythonhosted.org/packages/77/55/bec2858cc52ac54d301c59f8e2944c3684bb40d22890166f2a9671001b44/udger-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "9d73e46d621d3160a528d68ecbebb99d", "sha256": "5cc2268208a1e0aab635735047109f8ae8708d4f58a4501f02300cfbf6b63075" }, "downloads": -1, "filename": "udger-0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "9d73e46d621d3160a528d68ecbebb99d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8195, "upload_time": "2016-01-05T23:25:29", "url": "https://files.pythonhosted.org/packages/48/10/beacf27a457dfe2e07bdfe8645f6dfe4be51335de5cefa93c82f25ac1dee/udger-0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "66fc77b159f3d2e9ce9f1a280fc535df", "sha256": "a639ec3a5d14d3ce5a6322fafd4118abc20659a6afff0e48c207f43f55b8daf7" }, "downloads": -1, "filename": "udger-0.2.tar.gz", "has_sig": false, "md5_digest": "66fc77b159f3d2e9ce9f1a280fc535df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6327, "upload_time": "2016-01-05T23:25:13", "url": "https://files.pythonhosted.org/packages/ff/05/69b7c55e78d6303ac290987eb33567a96f244bdab48eaeee3e0209fc396b/udger-0.2.tar.gz" } ], "3.0": [ { "comment_text": "", "digests": { "md5": "bbacfdacecd65f29f71585bd3db3b0ce", "sha256": "00ef68bf50deb051a188eaf6d30be65cdb297c2527b91d7f4b0fbc933e5c34e8" }, "downloads": -1, "filename": "udger-3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "bbacfdacecd65f29f71585bd3db3b0ce", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9520, "upload_time": "2016-04-18T07:01:03", "url": "https://files.pythonhosted.org/packages/55/92/489d101663d4242650a0c70a5307d4f321679abbdb8fa1023edb7b72482d/udger-3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "66fa42fb0be926fbe14509e1a8b909c9", "sha256": "6bd25ff330cc285d0ff784d8297b7651902444ecae17bc778fba1791c62a2edf" }, "downloads": -1, "filename": "udger-3.0.tar.gz", "has_sig": false, "md5_digest": "66fa42fb0be926fbe14509e1a8b909c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8401, "upload_time": "2016-04-18T07:00:49", "url": "https://files.pythonhosted.org/packages/87/0b/89f890954891899e5a4e5a8528c27cf8f40400d5d847036e7e84f0c6e8ed/udger-3.0.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "3bd8d44bf01f987c9968ae9ad677272b", "sha256": "fd52a5acadd28370d32a4c1fbd219eee23803e636ce5f25f4d21e24cfdf76b95" }, "downloads": -1, "filename": "udger-3.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "3bd8d44bf01f987c9968ae9ad677272b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 10066, "upload_time": "2016-09-09T12:28:58", "url": "https://files.pythonhosted.org/packages/3f/aa/441c578b0e11f1a5a73ed44533ca589ec09e63ec357930a08d1b0ed50f03/udger-3.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7e3b8bdae41c1d8a58beccccb4f19230", "sha256": "5a5847126cf43ee8f566f38f9daa2a205df81d7026970c26247f93e443a63ee6" }, "downloads": -1, "filename": "udger-3.0.1.tar.gz", "has_sig": false, "md5_digest": "7e3b8bdae41c1d8a58beccccb4f19230", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8745, "upload_time": "2016-09-09T12:28:55", "url": "https://files.pythonhosted.org/packages/d5/6e/c4dac8e9613dd551e3414819ed68fe8a250852543fc7cd6909381e35807f/udger-3.0.1.tar.gz" } ], "3.0.2": [ { "comment_text": "", "digests": { "md5": "7de57bb9f836fabdd7a1eb35bdaedc38", "sha256": "02dea8476d4a022abf74c40f1e27e285327521f7e233126c40f5c57fe303fb97" }, "downloads": -1, "filename": "udger-3.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "7de57bb9f836fabdd7a1eb35bdaedc38", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 10791, "upload_time": "2016-09-26T12:16:26", "url": "https://files.pythonhosted.org/packages/88/39/64039cb7b9a11c0619656c2fdcb879d90d3233e3b6d64857ce4955743c37/udger-3.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3b5c50d5c01684ed267354fa3adca9f2", "sha256": "8b713187db76e2828af375359812eb5c7e61b33c39b1a7cf9f435b3a9fc3b0bf" }, "downloads": -1, "filename": "udger-3.0.2.tar.gz", "has_sig": false, "md5_digest": "3b5c50d5c01684ed267354fa3adca9f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9402, "upload_time": "2016-09-26T12:16:23", "url": "https://files.pythonhosted.org/packages/e8/76/cd605ff316c7b9e0bdbb67ea993cbf46524be62a5b9984d16708e459f70d/udger-3.0.2.tar.gz" } ], "3.0.3": [ { "comment_text": "", "digests": { "md5": "79b2932729cc3d59cd3e32f04093f0c1", "sha256": "1d9dd231e22c76247b3c27e556d599cb7feed72505eded5328b6fc01cc8f1800" }, "downloads": -1, "filename": "udger-3.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "79b2932729cc3d59cd3e32f04093f0c1", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11382, "upload_time": "2016-09-26T12:40:01", "url": "https://files.pythonhosted.org/packages/ad/d7/ddd00a22d5c19468473e4f9300f293e402b17a96a1024f96cd7c466922f8/udger-3.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "09fe3b96e4b41dab53727d8371724276", "sha256": "af1691db1843d0731050c458d9c02c8649d084bfc4dd195884cb32397eeefa08" }, "downloads": -1, "filename": "udger-3.0.3.tar.gz", "has_sig": false, "md5_digest": "09fe3b96e4b41dab53727d8371724276", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10964, "upload_time": "2016-09-26T12:39:58", "url": "https://files.pythonhosted.org/packages/83/a8/b1184c7f653c2fc65169649535ed290f778ad6bca85b0cf081fcfb3b5d13/udger-3.0.3.tar.gz" } ], "3.0.4": [ { "comment_text": "", "digests": { "md5": "e52f69c4e07ea5a15bfe3a5f7cda0cf4", "sha256": "5dc39794a93d95cb655c17256ed5e00294aea3f908aa63ea275c0a1105580147" }, "downloads": -1, "filename": "udger-3.0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "e52f69c4e07ea5a15bfe3a5f7cda0cf4", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11381, "upload_time": "2016-09-26T12:48:21", "url": "https://files.pythonhosted.org/packages/66/44/cc1418ec5e4390c28264dc632fc5e3610332836a3dbe2db61696237b348e/udger-3.0.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2768a300f83d1bb9c0e7612a57a185f3", "sha256": "12a9b2b590a7441d156304917761ef4620ca410b758e964d7433595d42a20d36" }, "downloads": -1, "filename": "udger-3.0.4.tar.gz", "has_sig": false, "md5_digest": "2768a300f83d1bb9c0e7612a57a185f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10944, "upload_time": "2016-09-26T12:48:19", "url": "https://files.pythonhosted.org/packages/fc/5f/247a5e7f1f4d2878df68bf2d018c42d2709a29c7680a0d56b333a39077f2/udger-3.0.4.tar.gz" } ], "4.0.0": [ { "comment_text": "", "digests": { "md5": "884105c061cabe0a7dc159d45ac63258", "sha256": "6dd306bbbc34c31e108ee911e880dbda6db971430e98ebd29b978f04c99a5f42" }, "downloads": -1, "filename": "udger-4.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "884105c061cabe0a7dc159d45ac63258", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12849, "upload_time": "2017-03-20T20:29:12", "url": "https://files.pythonhosted.org/packages/b8/16/5129f07e011217aa339d12afd66c4ee9338a93e62c8c9e2ec9a305d66fe3/udger-4.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e9782b150a77f8789c5d4d8d0ef3fc75", "sha256": "69ce9306be3a4eb7552e7bc9956d85e42cf3f8ad1972667c33ead81f8209fdc5" }, "downloads": -1, "filename": "udger-4.0.0.tar.gz", "has_sig": false, "md5_digest": "e9782b150a77f8789c5d4d8d0ef3fc75", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12352, "upload_time": "2017-03-20T20:29:10", "url": "https://files.pythonhosted.org/packages/7a/36/38727cc3950023d56cc241e764382bafcda403b6e9598a3e8c0a7bbb725a/udger-4.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "884105c061cabe0a7dc159d45ac63258", "sha256": "6dd306bbbc34c31e108ee911e880dbda6db971430e98ebd29b978f04c99a5f42" }, "downloads": -1, "filename": "udger-4.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "884105c061cabe0a7dc159d45ac63258", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12849, "upload_time": "2017-03-20T20:29:12", "url": "https://files.pythonhosted.org/packages/b8/16/5129f07e011217aa339d12afd66c4ee9338a93e62c8c9e2ec9a305d66fe3/udger-4.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e9782b150a77f8789c5d4d8d0ef3fc75", "sha256": "69ce9306be3a4eb7552e7bc9956d85e42cf3f8ad1972667c33ead81f8209fdc5" }, "downloads": -1, "filename": "udger-4.0.0.tar.gz", "has_sig": false, "md5_digest": "e9782b150a77f8789c5d4d8d0ef3fc75", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12352, "upload_time": "2017-03-20T20:29:10", "url": "https://files.pythonhosted.org/packages/7a/36/38727cc3950023d56cc241e764382bafcda403b6e9598a3e8c0a7bbb725a/udger-4.0.0.tar.gz" } ] }