> 백엔드 개발 > Golang > Go에서 확장된 입력 형식을 갖춘 향상된 CIDR 블록 계산기

Go에서 확장된 입력 형식을 갖춘 향상된 CIDR 블록 계산기

Patricia Arquette
풀어 주다: 2025-01-07 12:07:40
원래의
836명이 탐색했습니다.

IP 주소 범위의 효율적인 관리는 네트워크 엔지니어링, 클라우드 인프라 및 사이버 보안에 매우 중요합니다. CIDR(클래스 없는 도메인 간 라우팅) 블록은 IP 주소 범위를 나타내는 간단한 방법을 제공하지만 이를 수동으로 처리하는 것은 번거로울 수 있습니다. 확장된 입력 형식을 지원하면서 이 프로세스를 단순화하도록 설계된 Go 기반 유틸리티인 CIDR-Converter를 입력하세요.

여기에서 내 저장소를 확인하세요.

Enhanced CIDR Block Calculator with Expanded Input Formats in Go 패치 결함 / 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
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
전체 화면 모드로 전환 전체 화면 모드 종료
GitHub에서 보기

또한 애플리케이션의 기능과 범위를 늘리기 위해 추가 기능을 갖춘 웹앱을 만들 계획입니다!

이 프로젝트는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿