Sobes.tech
Senior

Kuidas teada saada avaliku DNS-serveri 8.8.8.8 MAC-aadressi?

sobes.tech AI

Vastus AI-lt

MAC-aadress on füüsiline aadress võrguliidesele kohaliku võrgus. Avalik DNS-server 8.8.8.8 on kaugserver internetis ning selle MAC-aadressi otsene teadmine ei ole võimalik, kuna MAC-aadresse ei edastata läbi ruuterite ning need on nähtavad ainult kohaliku võrgus.

Kui proovite saada 8.8.8.8 MAC-aadressi näiteks ARP abil, siis see ei tööta, sest ARP töötab ainult ühe võrgusegmendi piires.

Go keeles saate proovida teha ARP-päringut, kuid see on edukas ainult kohaliku võrgu seadmetele. Kaug-IP-aadresse see teha ei saa.

Näide katsetusest saada MAC-aadress kohaliku võrgu seadmetelt (mitte 8.8.8.8 jaoks):

package main

import (
    "fmt"
    "github.com/mdlayher/arp"
    "net"
)

func main() {
    iface, _ := net.InterfaceByName("eth0")
    client, _ := arp.Dial(iface)
    ip := net.ParseIP("192.168.1.1")
    hwAddr, err := client.Resolve(ip)
    if err != nil {
        fmt.Println("Viga:", err)
        return
    }
    fmt.Println("MAC-aadress:", hwAddr)
}

Aga 8.8.8.8 puhul see ei tööta. Lõpuks, võrgu protokolli piirangute tõttu, ei ole võimalik teada saada avaliku DNS-serveri MAC-aadressi.