{"id":14068652,"url":"https://github.com/davidchall/ipaddress","last_synced_at":"2026-02-21T01:31:05.562Z","repository":{"id":45302245,"uuid":"239136555","full_name":"davidchall/ipaddress","owner":"davidchall","description":"Data analysis for IP addresses and networks","archived":false,"fork":false,"pushed_at":"2023-12-02T03:53:50.000Z","size":6476,"stargazers_count":30,"open_issues_count":1,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-04-25T15:20:50.600Z","etag":null,"topics":["cyber","data-analysis","ip-address","ipv4","ipv6","r","vctrs"],"latest_commit_sha":null,"homepage":"https://davidchall.github.io/ipaddress","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidchall.png","metadata":{"files":{"readme":"README.Rmd","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-08T13:28:48.000Z","updated_at":"2024-06-10T12:30:46.607Z","dependencies_parsed_at":"2023-11-28T17:29:17.108Z","dependency_job_id":"4d3f6f49-d832-4b0e-9160-7f0331db9649","html_url":"https://github.com/davidchall/ipaddress","commit_stats":{"total_commits":344,"total_committers":4,"mean_commits":86.0,"dds":0.311046511627907,"last_synced_commit":"f7c934cb8a5cb0d2fe9b9200cc1d004ec4354884"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidchall%2Fipaddress","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidchall%2Fipaddress/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidchall%2Fipaddress/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidchall%2Fipaddress/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidchall","download_url":"https://codeload.github.com/davidchall/ipaddress/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228082345,"owners_count":17866606,"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":["cyber","data-analysis","ip-address","ipv4","ipv6","r","vctrs"],"created_at":"2024-08-13T07:06:19.662Z","updated_at":"2025-10-21T19:07:50.792Z","avatar_url":"https://github.com/davidchall.png","language":"R","funding_links":[],"categories":["R"],"sub_categories":[],"readme":"---\noutput: github_document\n---\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n```{r, include = FALSE}\nknitr::opts_chunk$set(\n  collapse = TRUE,\n  comment = \"#\u003e\",\n  fig.path = \"man/figures/README-\",\n  out.width = \"100%\"\n)\n```\n\n# ipaddress \u003ca href='https://davidchall.github.io/ipaddress/'\u003e\u003cimg src='man/figures/logo.png' align=\"right\" height=\"138\" /\u003e\u003c/a\u003e\n\n\u003c!-- badges: start --\u003e\n[![CRAN status](https://www.r-pkg.org/badges/version/ipaddress)](https://CRAN.R-project.org/package=ipaddress)\n[![R build status](https://github.com/davidchall/ipaddress/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/davidchall/ipaddress/actions/workflows/R-CMD-check.yaml)\n[![Coverage status](https://codecov.io/gh/davidchall/ipaddress/branch/master/graph/badge.svg)](https://app.codecov.io/gh/davidchall/ipaddress?branch=master)\n\u003c!-- badges: end --\u003e\n\nipaddress provides data classes and functions for working with IP addresses and networks. Its interface is inspired by the Python [ipaddress](https://docs.python.org/3/library/ipaddress.html) module.\n\nHere are some key features:\n\n* Functions to **generate and analyze IP data**\n* Full support for both **IPv4 and IPv6** address spaces\n* Data stored in native bit format for **reduced memory footprint**\n* Calculations written in C++ for **fast performance**\n* Compatible with the **tidyverse**\n\nFor data visualization of IP addresses and networks, check out the [ggip](https://davidchall.github.io/ggip/) package.\n\n\n## Installation\n\nInstall the released version from [CRAN](https://CRAN.R-project.org) with:\n\n``` r\ninstall.packages(\"ipaddress\")\n```\n\nInstall the development version from [GitHub](https://github.com/) with:\n\n``` r\n# install.packages(\"remotes\")\nremotes::install_github(\"davidchall/ipaddress\")\n```\n\n\n## Usage\n\nUse `ip_address()` and `ip_network()` to create standalone vectors or data frame columns.\n\n```{r example, message=FALSE}\nlibrary(tibble)\nlibrary(ipaddress)\n\naddress \u003c- ip_address(c(\"192.168.0.1\", \"2001:db8::8a2e:370:7334\"))\nnetwork \u003c- ip_network(c(\"192.168.100.0/22\", \"2001:db8::/80\"))\n\ntibble(address, network)\n```\n\nIt looks like we've simply stored the character vector, but we've actually validated each input and stored its native bit representation.\nWhen the vector is displayed, the `print()` method formats each value back to the human-readable character representation.\nThere are two main advantages to storing IP data in their native bit representation:\n\n* The data occupy less space in memory (up to 80% reduction),\n* Subsequent use is much faster, since we don't repeatedly parse the character vector.\n\nRead `vignette(\"ip-data\")` to learn more about these vector classes.\nFor a demonstration of common recipes using ipaddress vectors and functions, see `vignette(\"recipes\")`.\n\n\n## Related work\n\n* [**iptools**](https://github.com/hrbrmstr/iptools) --  A well established R package for working with IP addresses and networks. Unfortunately IPv6 support is severely limited. Also, addresses and networks are stored as character vectors, so they must be parsed to their native bit representation for every operation. It served as an excellent guide and motivation for ipaddress.\n* [**cyberpandas**](https://cyberpandas.readthedocs.io) -- A Python package for using IP addresses in a [pandas](https://pandas.pydata.org) DataFrame. This offers full support for IPv6 and stores addresses in the native bit representation. However, most \"interesting\" operations must deserialize each address to a Python [ipaddress](https://docs.python.org/3/library/ipaddress.html) object, which is slow. It also doesn't support IP networks.\n\n---\n\nPlease note that the ipaddress project is released with a\n[Contributor Code of Conduct](https://davidchall.github.io/ipaddress/CODE_OF_CONDUCT.html).\nBy contributing to this project, you agree to abide by its terms.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidchall%2Fipaddress","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidchall%2Fipaddress","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidchall%2Fipaddress/lists"}