Python 에서 ipaddress 네트워크 주소 처리
ipaddress 라 이브 러 리 는 IPv 4 와 IPv 6 네트워크 주 소 를 처리 하 는 클래스 를 제공 합 니 다.이러한 종 류 는 인증 을 지원 하고 네트워크 의 주소 와 호스트 를 찾 으 며 다른 일반적인 작업 을 지원 합 니 다.
이 편 은 Python 에서 ipaddress 라 이브 러 리 의 사용 규칙 을 상세 하 게 소개 합 니 다.(내용 은 많은 컴퓨터 네트워크 지식 과 관련 되 어 있 으 며,모 르 면 책 인 을 참고 할 수 있다.
주소.
일반적으로 우리 가 ipaddress 라 이브 러 리 를 사용 하 는 것 은 ipaddress()함수 가 주소 대상 을 만 듭 니 다.IPv4Address 나 IPv6Address 인 스 턴 스 를 되 돌려 줍 니 다.실례 는 다음 과 같다.
import ipaddress
import binascii
addresses = [
'121.63.3.59',
'2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b'
]
for ip in addresses:
address = ipaddress.ip_address(ip)
print("IP :", address)
print("IP Version:", address.version)
print(" :", address.is_private)
print(" :", address.is_global)
print(" :", address.is_multicast)
print(" :", address.is_loopback)
print(" link-local :", address.is_link_local)
print(" :", address.is_unspecified)
print("IP 16 :", binascii.hexlify(address.packed))
실행 후 효 과 는 다음 과 같 습 니 다.네트워크
네트워크 주 소 는 보통 하나의 기본 주소 와 하나의 마스크 로 표시 하 는데 마스크 가 주 소 를 가리 키 는 어떤 부분 은 네트워크 를 표시 하고 어떤 부분 은 이 네트워크 의 주 소 를 표시 합 니까?마스크 를 표시 할 수도 있 고 접두사 길이 값 을 사용 할 수도 있 습 니 다.예 를 들 어 다음 과 같 습 니 다.
import ipaddress
addresses = [
'192.168.1.0/24',
'2001:0db8:3c4d:0015::/64'
]
for n in addresses:
net = ipaddress.ip_network(n)
print(" :", net.is_private)
print(" :", net.broadcast_address)
print("IP :", net.compressed)
print(" :", net.with_netmask)
print(" :", net.with_hostmask)
print(" :", net.num_addresses)
print()
실행 후 효 과 는 다음 과 같 습 니 다.IP 주소 와 서브 넷 마스크,방송 주소 등 지식 과 관련 되 므 로 독 자 는 을 참고 할 수 있다.
네트워크 주 소 를 인쇄 하 는 데 사용 할 수 있 는 IP 가 얼마나 됩 니까?
IPv 4 의 네트워크 주소 에서 우 리 는 보통 이 를 A,B,C 류 로 나 누 는데 위 에서 우리 가 제공 하 는 192.168.1.0 은 C 류 주소 이다.인터넷 을 배 운 적 이 있 는 사람 은 한눈 에 알 수 있 을 것 이다.호스트 주 소 는 254 개 이 고 기본 주 소 는 192.168.1.0 이 며 방송 주 소 는 192.168.1.255 이다.전체 256 개.
이것 은 C 류 주소 이기 때문에 수학 이 조금 좋 은 것 은 손 쉽게 잡 을 수 있 을 것 입 니 다.그러나 제 가 IPv 6 나 IPv 4 의 A 류 주 소 를 드 리 겠 습 니 다.계산 할 수 있 는 것 이 많 지 않 을 것 입 니 다.ipaddress 라 이브 러 리 는 직접 인쇄 할 수 있 습 니 다.예 를 들 어 다음 과 같 습 니 다.
import ipaddress
n = '192.168.1.0/24'
net = ipaddress.ip_network(n)
for ip in zip(net):
print(ip)
실행 후 효 과 는 다음 과 같 습 니 다.이곳 은 여러 번 반복 되 어 모든 주 소 를 열거 하 였 다.사용 가능 한 호스트 주소 만 표시 하고 zip(net)을 zip(net.hosts()로 바 꾸 면 됩 니 다.
물론,만약 당신 이 단지 하나의 주소 가 네트워크 에 있 는 지 확인 하고 싶다 면,직접 in 을 사용 하여 판단 할 수 있 습 니 다.예 는 다음 과 같다.
import ipaddress
n = '192.168.1.0/24'
net = ipaddress.ip_network(n)
ip=ipaddress.ip_address('192.168.1.233')
if ip in net:
print(" ")
인터페이스네트워크 인 터 페 이 스 는 네트워크 의 특정한 주 소 를 표시 하고 호스트 주소 와 네트워크 접두사 나 네트워크 마스크 로 표시 할 수 있다.예 는 다음 과 같다.
import ipaddress
addresses = [
'192.168.1.251/24',
'2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b/64'
]
for ip in addresses:
iface = ipaddress.ip_interface(ip)
print(iface)
print(" :", iface.network)
print("ip :", iface.ip)
print(" :", iface.with_prefixlen)
print(" :", iface.with_netmask)
print(" :", iface.with_hostmask)
실행 후 효 과 는 다음 과 같 습 니 다.파 이 썬 에서 ipaddress 네트워크 주 소 를 처리 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 ipaddress 네트워크 주소 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.