All Projects → davidchall → ipaddress

davidchall / ipaddress

Licence: Unknown, MIT licenses found Licenses found Unknown LICENSE MIT LICENSE.md
Data analysis of IP addresses and networks

Programming Languages

r
7636 projects
C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to ipaddress

php-ip-anonymizer
IP address anonymizer library for PHP
Stars: ✭ 55 (+175%)
Mutual labels:  ipv6, ipv4, ip-address
ipapi-python
Python bindings for https://ipapi.co (IP Address Location) - Use with python / django / flask for IP address location lookup
Stars: ✭ 42 (+110%)
Mutual labels:  ipv6, ipv4, ip-address
ip
Immutable value object for IPv4 and IPv6 addresses, including helper methods and Doctrine support.
Stars: ✭ 212 (+960%)
Mutual labels:  ipv6, ipv4, ip-address
Ipwhois
Retrieve and parse whois data for IPv4 and IPv6 addresses
Stars: ✭ 432 (+2060%)
Mutual labels:  ipv6, ipv4, ip-address
IP2Location-C-Library
IP2Location C library enables the user to find the country, region, city, coordinates, zip code, time zone, ISP, domain name, connection type, area code, weather station code, weather station name, mobile, usage types, etc that any IP address or hostname originates from.
Stars: ✭ 37 (+85%)
Mutual labels:  ipv6, ipv4, ip-address
Geolocate-IP-Browser-Extension
A browser extension, which shows you the origin of your IP address.
Stars: ✭ 21 (+5%)
Mutual labels:  ipv6, ipv4, ip-address
PHP-IPAddress
IP Address utility classes for PHP
Stars: ✭ 63 (+215%)
Mutual labels:  ipv6, ipv4, ip-address
IP2Location-PHP-Module
This module is a PHP module that enables the user to find the country, region, city, coordinates, zip code, ISP, domain name, timezone, connection speed, IDD code, area code, weather station code, weather station name, mobile, usage types, address type, IAB category, etc that any IP address or host name originates from.
Stars: ✭ 154 (+670%)
Mutual labels:  ipv6, ipv4, ip-address
Ipaddress
Java library for handling IP addresses and subnets, both IPv4 and IPv6
Stars: ✭ 197 (+885%)
Mutual labels:  ipv6, ipv4, ip-address
Ip Num
A TypeScript/JavaScript library for working with ASN, IPv4, and IPv6 numbers. It provides representations of these internet protocol numbers with the ability to perform various IP related operations like parsing, validating etc. on them
Stars: ✭ 113 (+465%)
Mutual labels:  ipv6, ipv4, ip-address
Ipnetwork
A library to work with CIDRs in rust
Stars: ✭ 64 (+220%)
Mutual labels:  ipv6, ipv4, ip-address
private-ip
Check if IP address is private.
Stars: ✭ 26 (+30%)
Mutual labels:  ipv6, ipv4, ip-address
IPpy
🚀 Ping IP addresses and domains in parallel to find the accessible and inaccessible ones.
Stars: ✭ 54 (+170%)
Mutual labels:  ipv6, ipv4, ip-address
ip2location-nginx
Nginx module that allows user to lookup for geolocation information using IP2Location database.
Stars: ✭ 33 (+65%)
Mutual labels:  ipv6, ipv4, ip-address
SixIndicator
SixIndicator is a WebExtension Plugin which indicates via an icon, if you are viewing the website with IPv6 or IPv4.
Stars: ✭ 17 (-15%)
Mutual labels:  ipv6, ipv4
TFTPServer
Managed TFTP server implementation, written in C#. Features: IPv4 and IPv6, blocksize, single port mode, windowed mode, unlimited transfers, MIT licensed
Stars: ✭ 28 (+40%)
Mutual labels:  ipv6, ipv4
accomplist
ACCOMPLIST - List Compiler
Stars: ✭ 51 (+155%)
Mutual labels:  ipv6, ipv4
zx-ip-address
Deprecated
Stars: ✭ 96 (+380%)
Mutual labels:  ipv6, ipv4
masscanned
Let's be scanned. A low-interaction honeypot focused on network scanners and bots. It integrates very well with IVRE to build a self-hosted alternative to GreyNoise.
Stars: ✭ 50 (+150%)
Mutual labels:  ipv6, ipv4
ipv6
IPv6-adresse.dk source & data
Stars: ✭ 27 (+35%)
Mutual labels:  ipv6, ipv4

ipaddress

CRAN status R build status Coverage status

ipaddress provides data classes and functions for working with IP addresses and networks. Its interface is inspired by the Python ipaddress module.

Here are some of the features:

  • Functions for generation and analysis of IP data
  • Full support for both IPv4 and IPv6 address spaces
  • Memory footprint: data stored in native format
  • Performance: calculations performed in C++
  • Compatible with the tidyverse

For data visualization of IP addresses and networks, check out the ggip package.

Installation

You can install the released version of ipaddress from CRAN with:

install.packages("ipaddress")

Or you can install the development version from GitHub:

# install.packages("remotes")
remotes::install_github("davidchall/ipaddress")

Usage

Use ip_address() and ip_network() vectors either standalone or as columns in a data frame.

library(dplyr)
library(ipaddress)

tibble(
  address = ip_address(c("192.168.0.1", "2001:db8::8a2e:370:7334")),
  network = ip_network(c("192.168.100.0/22", "2001:db8::/80"))
)
#> # A tibble: 2 × 2
#>                   address          network
#>                 <ip_addr>       <ip_netwk>
#> 1             192.168.0.1 192.168.100.0/22
#> 2 2001:db8::8a2e:370:7334    2001:db8::/80

Input character vectors are validated as they are parsed. Invalid inputs raise a warning and are replaced with NA.

ip_address(c("255.255.255.255", "255.255.255.256"))
#> Warning: Problem on row 2: 255.255.255.256
#> <ip_address[2]>
#> [1] 255.255.255.255 <NA>

A variety of functions are provided to enable common tasks.

tibble(network = ip_network(c("192.168.100.0/22", "2001:db8::/80"))) %>%
  mutate(
    first = network_address(network),
    last = broadcast_address(network),
    ipv6 = is_ipv6(network)
  )
#> # A tibble: 2 × 4
#>            network         first                     last ipv6 
#>         <ip_netwk>     <ip_addr>                <ip_addr> <lgl>
#> 1 192.168.100.0/22 192.168.100.0          192.168.103.255 FALSE
#> 2    2001:db8::/80    2001:db8:: 2001:db8::ffff:ffff:ffff TRUE

Related work

  • 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.
  • cyberpandas – A Python package for using IP addresses in a pandas 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 object, which is slow. It also doesn’t support IP networks.

Please note that the ipaddress project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].