>  기사  >  백엔드 개발  >  Golang을 사용하여 Wi-Fi IP 주소를 얻는 방법은 무엇입니까?

Golang을 사용하여 Wi-Fi IP 주소를 얻는 방법은 무엇입니까?

WBOY
WBOY앞으로
2024-02-09 14:33:18676검색

如何使用 Golang 获取我的 wifi IP 地址?

php 편집기 Xiaoxin은 Golang을 사용하여 자신의 Wi-Fi IP 주소를 얻는 방법을 소개하기 위해 왔습니다. Golang은 네트워크 관련 작업을 처리하기 위한 다양한 편리한 방법을 제공하는 효율적이고 간결한 프로그래밍 언어입니다. Wi-Fi IP 주소를 얻으려면 Golang의 net 패키지와 os/exec 패키지를 사용하여 일부 시스템 명령을 실행할 수 있습니다. 간단한 코드를 사용하면 우리가 연결된 Wi-Fi의 IP 주소를 얻을 수 있습니다. 구체적인 구현 과정을 살펴보겠습니다!

질문 내용

func getLocalIP() ([]string, error) {
    addrs, err := net.InterfaceAddrs()
    if err != nil {
        return nil, err
    }
    IPs := make([]string, 0)
    for _, a := range addrs {
        if ipNet, ok := a.(*net.IPNet); ok && !ipNet.IP.IsLoopback() {
            if ipNet.IP.To4() != nil {
                IPs = append(IPs, ipNet.IP.To4().String())
            }
        }
    }
    return IPs, nil
}
func TestGetLocalIP() {
    addrs, _ := getLocalIP()
    for _, a := range addrs {
        fmt.Println(a)
    }
}

이것을 사용했는데 IP 주소 목록이 나왔습니다.

Wi-Fi 로컬 주소를 알고 싶은데 어떻게 해야 하나요?

해결책

다음 두 가지 정보 중 적어도 하나를 알아야 합니다.

  1. 올바른 인터페이스의 이름(예를 들어 Mac에서는 일반적으로 en0이지만 ymmv)
  2. 마스크 길이를 포함한 무선 네트워크 주소(192.168.0.0/16 또는 192.168.0.0/24와 같은 주소)가 일반적이지만 이를 미리 알아내야 합니다.

인터페이스 이름만 아는 경우:

으아악

더 쉬움:

으아악

무선 네트워크의 네트워크 주소를 알고 있는 경우

으아악

어떤 방법을 선택해야 할까요

특정 이름을 가진 인터페이스에 의존하는 것은 일반적으로 이식성이 없습니다. 따라서 내 가정은 여러분이 이것을 자신의 워크스테이션에서 실행하기를 원한다는 것이지만, 이것이 여러 호스트에서 실행되어야 하는 것이라면 최소한 올바른 네트워크 주소를 일치시키는 것부터 시작하는 것이 좋습니다. 다른 트릭이 있습니다. 각 호스트가 제조업체 xxx의 NIC를 가지고 있는 서버 팜에서 실행한다고 가정하면 Mac 주소를 조회하여 해당 제조업체의 주소인지 확인할 수 있습니다. 여기에서 시도해 볼 수 있습니다. . 다른 필터도 사용할 수 있지만 이는 개인적인 사용 사례에 적합합니다.

위 내용은 Golang을 사용하여 Wi-Fi IP 주소를 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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