상세 컨텐츠

본문 제목

파이썬 ipaddress 라이브러리

파이썬/Snippets

by amanda.hyon 2021. 3. 18. 23:53

본문

ip 주소 버전 : 버전4 or 버전6 감별.

ipaddress.ip_address('192.168.1.1').version
# 4

 

IP 버전에 대한 표현 가능한 총 비트 수

ipaddress.ip_address('10.10.10.128').max_prefixlen
# 32

 

IP 주소의 사설IP/공인IP/루프백 여부를 판단

# 사설 주소 체크
ipaddress.ip_address('192.168.1.1').is_private  # True : 사설IP
ipaddress.ip_address('8.8.8.8').is_private  # False : 공인IP

# 공인 주소 체크
ipaddress.ip_address('192.168.1.1').is_global  # False : 사설IP
ipaddress.ip_address('8.8.8.8').is_global  # True : 공인IP

# 루프백
ipaddress.ip_address('10.10.10.10').is_loopback  # False
ipaddress.ip_address('127.0.0.1').is_loopback  # True

 

네트워크(ip_network)의 네트워크 주소(ip_address)로 반환

ipaddress.ip_network('192.168.1.0/24').network_address
# IPv4Address('192.168.1.0')

 

네트워크의 브로드 캐스트 주소를 반환

ipaddress.ip_network('10.1.1.0/24').broadcast_address
# IPv4Address('10.1.1.255')

 

hostmask는 네트워크의 호스트 마스크 주소를 반환

ipaddress.ip_network('10.1.1.0/24').hostmask
# IPv4Address('0.0.0.255')

 

netmask는 네트워크의 넷 마스크 주소를 반환

ipaddress.ip_network('10.1.1.0/24').netmask
# IPv4Address('255.255.255.0')

 

네트워크의 사용 가능한 주소(호스트)의 수와 리스트 구하기

# num_addresses #
ipaddress.ip_network('10.1.13.0/24').num_addresses  # 256
ipaddress.ip_network('10.1.13.0/27').num_addresses  # 32

# hosts() #
list(ipaddress.ip_network('10.1.13.0/31').hosts())
# [IPv4Address('10.1.13.0'), IPv4Address('10.10.10.1')]

list(ipaddress.ip_network('10.1.13.0/29').hosts())
# [IPv4Address('10.1.13.1'), IPv4Address('10.1.13.2'), IPv4Address('10.1.13.3'), 
# IPv4Address('10.1.13.4'), IPv4Address('10.1.13.5'), IPv4Address('10.1.13.6')]

 

그 외 api는 공식문서를 참조

https://docs.python.org/ko/3/library/ipaddress.html

관련글 더보기

댓글 영역