Go에서 확장된 입력 형식을 갖춘 향상된 CIDR 블록 계산기
IP 주소 범위의 효율적인 관리는 네트워크 엔지니어링, 클라우드 인프라 및 사이버 보안에 매우 중요합니다. CIDR(클래스 없는 도메인 간 라우팅) 블록은 IP 주소 범위를 나타내는 간단한 방법을 제공하지만 이를 수동으로 처리하는 것은 번거로울 수 있습니다. 확장된 입력 형식을 지원하면서 이 프로세스를 단순화하도록 설계된 Go 기반 유틸리티인 CIDR-Converter를 입력하세요.
여기에서 내 저장소를 확인하세요.
패치 결함
/
CIDR 변환기
CIDR 블록 변환기
CIDR 변환
다양한 형식의 IP 주소 범위를 처리, 검증 및 병합하는 Go로 작성된 명령줄 유틸리티입니다. 이 도구는 CIDR 표기법, 와일드카드 표기법 및 다양한 입력/출력 형식을 지원합니다.
특징
입력 처리
- 지원되는 다양한 입력 형식:
- CIDR 표기법(예: "192.168.1.0/24")
- 와일드카드 표기(예: "192.168.1.*")
- CIDR 블록이 포함된 CSV 파일
- CIDR 블록이 포함된 JSON 파일
- 수동 입력을 위한 대화형 표준 입력 모드
CIDR 운영
- IP 범위 및 CIDR 블록 검증
- 와일드카드 표기법을 CIDR 형식으로 변환
- 겹치는 CIDR 블록 병합
- 최적의 구성을 위해 CIDR 블록 정렬
출력 처리
- 병합된 결과를 JSON 파일로 자동 저장
- 예쁜 JSON 출력
- 종합적인 오류 처리 및 보고
설치
시스템에 Go가 설치되어 있는지 확인한 후 다음을 수행하세요.
git clone [repository-url] cd [repository-name] go build
사용방법
이 도구는 세 가지 입력 모드를 지원합니다.
1. 표준 입력 모드
git clone [repository-url] cd [repository-name] go build
또한 애플리케이션의 기능과 범위를 늘리기 위해 추가 기능을 갖춘 웹앱을 만들 계획입니다!
이 프로젝트는 Andy Walker의 cidr-convert 저장소에서 영감을 받았습니다.
주요 특징
1. 유연한 입력 형식
- 기존 CIDR 표기법 지원(예: 192.168.0.0/24)
- 와일드카드 표기법을 구문 분석합니다(예: 192.168..)
- 이진 문자열을 CIDR 블록으로 변환합니다(예: 11000000101010000000000000000000/24)
- CSV 및 JSON 파일에서 CIDR을 읽습니다
2. 지능형 병합
- 겹치는 CIDR을 최소 세트로 병합하여 중복성을 줄입니다
- 가능한 경우 더 작은 서브넷을 더 큰 서브넷으로 집계
3. 파일 I/O 지원
- 파일 또는 표준 입력의 입력을 구문 분석
- 손쉬운 공유 및 저장을 위해 병합된 CIDR을 JSON 파일로 저장합니다
그것이 해결하는 문제
큰 CIDR 목록을 처리하는 것은 지루할 수 있으며, 특히 겹치거나 인접한 범위를 처리할 때 더욱 그렇습니다. 이러한 범위를 수동으로 집계하면 오류가 발생하기 쉽고 시간이 많이 걸립니다. 이 도구는 프로세스를 자동화하여 최적의 집계를 보장하고 잘못된 관리의 위험을 줄입니다.
작동 방식
핵심 기능
1. CIDR 구문 분석 및 검증
parseCIDR 함수는 입력이 유효한 CIDR 표기법을 준수하는지 확인합니다.
2. 와일드카드 및 바이너리 구문 분석
- 마스크 길이를 분석하여 와일드카드(예: 192.168..)를 CIDR로 변환합니다
- 바이너리 문자열(예: 11000000101010000000000000000000/24)은 IP 주소로 변환됩니다.
3. CIDR 병합
- mergeCIDRs 기능은 겹치는 범위를 병합하여 중복성을 제거합니다
- aggregateCIDRs 기능은 더 작은 서브넷을 더 큰 포함 블록으로 결합합니다
4. 파일 파싱
parseCSV 및 ParseJSON 함수를 사용하여 CSV 및 JSON 형식에서 CIDR을 읽습니다.
5. 출력
병합된 CIDR은 다른 도구나 팀에서 쉽게 사용할 수 있도록 JSON 파일에 저장됩니다.
사용 예
명령줄 실행
입력 유형을 지정하여 터미널에서 직접 도구를 실행하세요.
git clone [repository-url] cd [repository-name] go build
샘플 출력
입력에 따라:
./cidr-processor <span># Enter CIDR blocks interactively, one per line:</span> 192.168.1.0/24 10.0.0.* <span># Press Ctrl+D (Linux/Mac) or Ctrl+Z (Windows) to</span>
이 도구는 단일 집계 블록을 출력합니다.
# Standard input $ go run main.go Enter CIDR blocks, one per line. Press Ctrl+D (Linux/Mac) or Ctrl+Z (Windows) to end input: 192.168.0.0/24 192.168.1.0/24 # CSV Input $ go run main.go input.csv # JSON Input $ go run main.go input.json
merged_cidrs.json에 저장되었습니다.
코드 연습
와일드카드 표기법 구문 분석
192.168..과 같은 와일드카드는 CIDR로 변환됩니다.
192.168.0.0/24 192.168.1.0/24
이 함수는 적절한 접두사 길이를 계산하고 CIDR 블록을 구성합니다.
병합 및 집계
mergeCIDRs 기능은 중복성을 제거합니다.
[ "192.168.0.0/23" ]
집계는 다음과 같습니다.
git clone [repository-url] cd [repository-name] go build
이 단계에서는 인접한 범위를 더 큰 블록으로 결합합니다.
파일 구문 분석
CSV 및 JSON 입력 파일은 ParseCSV 및 ParseJSON으로 구문 분석되어 기존 워크플로와 원활하게 통합됩니다.
./cidr-processor <span># Enter CIDR blocks interactively, one per line:</span> 192.168.1.0/24 10.0.0.* <span># Press Ctrl+D (Linux/Mac) or Ctrl+Z (Windows) to</span>
왜 가야합니까?
net, regexp, 인코딩/json과 같은 패키지를 포함한 Go의 강력한 표준 라이브러리는 네트워크 관련 도구를 구축하는 데 탁월한 선택입니다. 강력한 동시성 모델은 대규모 데이터 세트에서도 높은 성능을 보장합니다.
향후 개선 사항
1. IPv6 지원
- IPv6 범위를 처리하도록 기능 확장
2. 동적 입력 형식
- YAML 및 XML 지원 추가
3. 웹 인터페이스
- 대화형 CIDR 관리를 위한 경량 웹 애플리케이션 구축
결론
향상된 CIDR 블록 계산기는 확장된 입력 형식, 지능형 병합 및 강력한 파일 지원을 통해 CIDR 관리를 단순화합니다. 그 다양성은 네트워크 엔지니어, 클라우드 설계자, 사이버 보안 전문가에게 귀중한 도구입니다. Andy Walker의 cidr-convert에서 영감을 받은 이 도구는 기본 아이디어를 바탕으로 보다 포괄적인 솔루션을 제공합니다. 지금 바로 CIDR 워크플로를 간소화해 보세요!
위 내용은 Go에서 확장된 입력 형식을 갖춘 향상된 CIDR 블록 계산기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Golang은 성능과 확장 성 측면에서 Python보다 낫습니다. 1) Golang의 컴파일 유형 특성과 효율적인 동시성 모델은 높은 동시성 시나리오에서 잘 수행합니다. 2) 해석 된 언어로서 파이썬은 천천히 실행되지만 Cython과 같은 도구를 통해 성능을 최적화 할 수 있습니다.

Golang은 동시성에서 C보다 낫고 C는 원시 속도에서 Golang보다 낫습니다. 1) Golang은 Goroutine 및 Channel을 통해 효율적인 동시성을 달성하며, 이는 많은 동시 작업을 처리하는 데 적합합니다. 2) C 컴파일러 최적화 및 표준 라이브러리를 통해 하드웨어에 가까운 고성능을 제공하며 극도의 최적화가 필요한 애플리케이션에 적합합니다.

goisidealforbeginnersandsuitableforcloudandnetworkservicesduetoitssimplicity, 효율성, 및 콘크리 론 피처

Golang은 빠른 개발 및 동시 시나리오에 적합하며 C는 극도의 성능 및 저수준 제어가 필요한 시나리오에 적합합니다. 1) Golang은 쓰레기 수집 및 동시성 메커니즘을 통해 성능을 향상시키고, 고전성 웹 서비스 개발에 적합합니다. 2) C는 수동 메모리 관리 및 컴파일러 최적화를 통해 궁극적 인 성능을 달성하며 임베디드 시스템 개발에 적합합니다.

goimpactsdevelopmentpositively throughlyspeed, 효율성 및 단순성.

Golang과 Python은 각각 고유 한 장점이 있습니다. Golang은 고성능 및 동시 프로그래밍에 적합하지만 Python은 데이터 과학 및 웹 개발에 적합합니다. Golang은 동시성 모델과 효율적인 성능으로 유명하며 Python은 간결한 구문 및 풍부한 라이브러리 생태계로 유명합니다.

Golang과 C의 성능 차이는 주로 메모리 관리, 컴파일 최적화 및 런타임 효율에 반영됩니다. 1) Golang의 쓰레기 수집 메커니즘은 편리하지만 성능에 영향을 줄 수 있습니다. 2) C의 수동 메모리 관리 및 컴파일러 최적화는 재귀 컴퓨팅에서 더 효율적입니다.

Golang과 C는 각각 공연 경쟁에서 고유 한 장점을 가지고 있습니다. 1) Golang은 높은 동시성과 빠른 발전에 적합하며 2) C는 더 높은 성능과 세밀한 제어를 제공합니다. 선택은 프로젝트 요구 사항 및 팀 기술 스택을 기반으로해야합니다.
