Sobes.tech
Senior

Hoe vind je het MAC-adres van de openbare DNS-server 8.8.8.8?

sobes.tech AI

Antwoord van AI

MAC-adres is het fysieke adres van de netwerkinterface in een lokaal netwerk. De publieke DNS-server 8.8.8.8 is een externe host op internet, en het is niet mogelijk om direct het MAC-adres ervan te achterhalen, omdat MAC-adressen niet via routers worden doorgegeven en alleen binnen het lokale netwerk zichtbaar zijn.

Als je probeert het MAC-adres van 8.8.8.8 te verkrijgen, bijvoorbeeld via ARP, zal dat niet werken, omdat ARP alleen binnen één netwerksegment werkt.

In Go kun je proberen een ARP-verzoek uit te voeren, maar dat zal alleen succesvol zijn voor apparaten in het lokale netwerk. Voor externe IP's is dit niet mogelijk.

Voorbeeld van een poging om het MAC-adres in een lokaal netwerk te verkrijgen (niet voor 8.8.8.8):

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("Fout:", err)
        return
    }
    fmt.Println("MAC-adres:", hwAddr)
}

Maar voor 8.8.8.8 werkt dit niet. Uiteindelijk is het vanwege de beperkingen van het netwerkprotocol niet mogelijk om het MAC-adres van de publieke DNS-server te achterhalen.