The one and only library to make your network code handsome
Project description
Netsome
A Python library for working with common networking types and conversions, including IPv4/IPv6 addresses/networks, MAC addresses, BGP ASNs, VLANs and network interfaces.
Installation
pip install netsome
Features
- IPv4 & IPv6 address and network manipulation (addresses, networks, interfaces)
- IPv6 Support: Full IPv6 address handling with compression, special address types, and IPv4-mapped addresses
- MAC address handling (MAC-48/EUI-48)
- BGP AS number conversions (asplain, asdot, asdotplus formats)
- VLAN ID validation and management
- Network interface name parsing and standardization
- Robust validation for all data types
- Type-safe implementation with proper error handling
Basic Usage
from netsome.types import (
IPv4Address,
IPv4Network,
IPv4Interface,
IPv6Address,
IPv6Network,
IPv6Interface,
MacAddress,
ASN,
VID,
Community,
Interface,
)
# IPv4 address and network manipulation
ipv4_addr = IPv4Address("192.168.1.1")
print(ipv4_addr.address) # "192.168.1.1"
print(ipv4_addr.cidr) # "192.168.1.1/32"
ipv4_net = IPv4Network("192.168.1.0/24")
print(ipv4_net.prefixlen) # 24
print(ipv4_net.netaddress) # "192.168.1.0"
ipv4_interface = IPv4Interface("192.168.1.1/24")
print(ipv4_interface.address) # "192.168.1.1"
print(ipv4_interface.network) # "192.168.1.0/24"
# IPv6 address and network manipulation
ipv6_addr = IPv6Address("2001:db8::1")
print(ipv6_addr.address) # "2001:db8::1"
print(ipv6_addr.expanded) # "2001:0db8:0000:0000:0000:0000:0000:0001"
print(ipv6_addr.is_global) # True
ipv6_net = IPv6Network("2001:db8::/32")
print(ipv6_net.prefixlen) # 32
print(len(list(ipv6_net.subnets(prefixlen=64)))) # 4294967296
ipv6_interface = IPv6Interface("2001:db8::1/64")
print(ipv6_interface.address) # "2001:db8::1"
print(ipv6_interface.network) # "2001:db8::/64"
# IPv6 special address detection
link_local = IPv6Address("fe80::1")
print(link_local.is_link_local) # True
multicast = IPv6Address("ff02::1")
print(multicast.is_multicast) # True
# Work with MAC addresses
mac = MacAddress("001122334455")
print(mac.is_unicast()) # True
print(mac.oui) # "001122"
# Handle BGP AS numbers
asn = ASN.from_asdot("64512.1")
print(asn.to_asplain()) # "4244897793"
# Work with BGP Communities
community = Community.from_str("65000:100")
print(str(community)) # "65000:100"
print(int(community)) # 4259840100
# Manage VLAN IDs
vid = VID(100)
print(vid.is_reserved()) # False
# Parse and work with network interface names
iface = Interface("eth0")
print(iface.type) # IFACE_TYPES.ETHERNET
print(iface.value) # "0"
print(iface.canonical_name) # "Ethernet0"
print(iface.abbreviated_name) # "Eth0"
Authors
- Dmitriy Kudryavtsev - author - kuderr
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
netsome-0.4.5.tar.gz
(17.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
netsome-0.4.5-py3-none-any.whl
(26.0 kB
view details)
File details
Details for the file netsome-0.4.5.tar.gz.
File metadata
- Download URL: netsome-0.4.5.tar.gz
- Upload date:
- Size: 17.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.4 CPython/3.14.3 Darwin/25.0.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a393e758f9b2a3b3506ccc31848f34c154861927f30c75de4658a346de559178
|
|
| MD5 |
577901d32c623dc9c1f61c2805a9f0fa
|
|
| BLAKE2b-256 |
99673580f9625b42eb54568a3221f7edd9298b5deef02cbda476aad6c154fa7b
|
File details
Details for the file netsome-0.4.5-py3-none-any.whl.
File metadata
- Download URL: netsome-0.4.5-py3-none-any.whl
- Upload date:
- Size: 26.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.4 CPython/3.14.3 Darwin/25.0.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
008759f5b4055c4e29aa0d7fb190e7db110deab006e9dd69bb90348b3616f779
|
|
| MD5 |
d1a30ef2443e4ecb3a05d66c4ef325ee
|
|
| BLAKE2b-256 |
58aaf9ee21a64747d1b878514ef4ea4e452b507a93f51ed4a1cf26ba8d034f01
|