>백엔드 개발 >Golang >golang을 사용하여 네트워크의 서브넷을 나열하는 방법은 무엇입니까?

golang을 사용하여 네트워크의 서브넷을 나열하는 방법은 무엇입니까?

王林
王林앞으로
2024-02-12 22:06:091398검색

如何使用 golang 列出网络中的子网?

php 편집기 Banana는 Golang을 사용하여 네트워크의 서브넷을 나열하는 방법을 소개합니다. Golang은 네트워크 관련 작업을 쉽게 처리할 수 있는 많은 기능과 라이브러리를 제공하는 강력한 프로그래밍 언어입니다. 네트워크의 서브넷을 나열하려면 Golang의 넷 패키지와 CIDR(Classless Inter-Domain Routing) 라이브러리를 사용할 수 있습니다. IP 주소와 서브넷 마스크를 구문 분석하면 네트워크의 모든 서브넷을 계산할 수 있습니다. 다음으로 Golang을 사용하여 이 기능을 구현하는 코드를 작성하는 방법을 자세히 설명하겠습니다.

질문 내용

번호를 기재하고 싶습니다. 네트워크의 서브넷, Python의 샘플 작업 코드가 있지만 golang에는 필요합니다.

으아악

192.168.0.0/22 ​​​​192.168.4.0/22 ​​​​192.168.12.0/22 ​​​​192.168.16.0/22 ​​​​192.168.20.0/22 ​​​​192.168.24.0/22 ​​​​192.16 8. 28.0 /22 ​​192.168.32.0/22 ​​​​192.168 .36.0/22 ​​​​192.168.40.0/22 ​​​​192.168.44.0/22 ​​​​192.168.48.0/22 ​​​​192.168.52.0/22 ​​56.0/ 22 ​​192.168.60.0/22 ​​​​192.168.64. 0/22 192.168.68.0/22 ​​​​192.168.72.0/22 ​​​​192.168.76.0/22 ​​​​192.168.80.0/22 ​​​​192.168.88.0/22 ​​​​192.168.92.0/22 ​​​​192.1 68. 96.0/ 22 ​​192.168.100.0/22 ​​​​192.168.10 4.0/22 ​​​​192.168.108.0/22 ​​​​192.168.112.0/22 ​​​​192.168.116.0/22 ​​​​192.168.120.0/22 ​​​​1 92.168.128.0/ 22 ​​192.168.13 2.0/22 ​​​​192.168.136.0/22 ​​​​192.168.140.0/22 ​​​​192 . 168.144.0/22 ​​​​192.168.148.0/22 ​​​​192.168.152.0/22 ​​​​192.168.156.0/22 ​​​​192.168.164.0/22 ​​​​192.168.168.0/22 ​​​​192.168 .0/22 ​​​​192.168 .176.0/22 ​​​​192.168.180.0/22 ​​192. 168.184.0/22 ​​​​192.168.188.0/22 ​​​​192.168.192.0/22 ​​​​192.168.196.0/22 ​​​​192.168.204.0/22 ​​​​192.168.208.0/22 ​​​​192.168 .0/22 ​​​​192.168 .216.0/22 ​​​​192.168.220.0/22 ​​192. 168.224.0/22 ​​​​192.168.228.0/22 ​​​​192.168.232.0/22 ​​​​192.168.236.0/22 ​​​​192.168. 244.0/22 ​​​​19 2.168.252.0/22192.168.0.0/22 192.168.4.0/22 192.168.8.0/22 192.168.12.0/22 192.168.16.0/22 192.168.20.0/22 192.168.24.0/22 192.168 .28.0/22 192.168.32.0/22 192.168.36.0/22 192.168.40.0/22 192.168.44.0/22 192.168.48.0/22 192.168.52.0/22 192.168.56.0/22 192.168.60.0/22 192.168.64。 0/22 192.168.68.0/22 192.168.72.0/22 192.168.76.0/22 192.168.80.0/22 192.168.84.0/22 192.168.88.0/22 192.168.92.0/22 192.168.96.0/22 192.168.100.0/22 192.168.10 4.0/22 192.168.108.0/22 192.168.112.0/22 192.168.116.0/22 192.168.120.0/22 192.168.124.0/22 192.168.128.0/22 192.168.132.0/22 192.168.136.0/22 192.168.140.0/22 192。 168.144.0/22 192.168.148.0/22 192.168.152.0/22 192.168.156.0/22 192.168.160.0/22 192.168.164.0/22 192.168.168.0/22 192.168.172.0/22 192.168.176.0/22 192.168.180.0/22 192。 168.184.0/22 192.168.188.0/22 192.168.192.0/22 192.168.196.0/22 192.168.200.0/22 192.168.204.0/22 192.168.208.0/22 192.168.212.0/22 192.168.216.0/22 192.168.220.0/22 192. 168.224.0/22 192.168.228.0/22 192.168.232.0/22 192.168.236.0/22 192.168.240.0/22 192.168.244.0/22 192.168.248.0/22 192.168.252.0/22

解决方法

我编写的函数生成给定 subnetmasksize 的所有子网,这些子网可以在给定 netcidr

해결책

내가 작성한 함수는 subnetmasksize가 주어지면 주어진 netcidr 내에서 생성할 수 있는 모든 서브넷을 생성합니다. 코드>. 네트워크와 서브넷은 cidr 표기법으로 표시됩니다.

예:

으아악 으아악

저는 이해하기 쉽도록 산술 연산을 선택했습니다. (더 나은 성능을 위해서는 비트 연산을 사용하세요.) 🎜 🎜이 함수는 특정 네트워크 및 서브넷 마스크에 대한 몇 가지 사실을 계산한 다음 모든 서브넷 CIDR을 생성합니다. 🎜 으아악

위 내용은 golang을 사용하여 네트워크의 서브넷을 나열하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제