一千萬個為什麽

搜索

如何解決本地域名?

我的Belkin路由器有一個設置本地域名的選項,我懷疑,它允許我使用這個域來尋址我自己網絡中的主機。默認情況下,它設置為“Belkin”。 是否可以像這樣在我的網絡中呼叫主機,例如 ping foobar.belkin 而不是 ping 192.168.2.4 ? 問題是,我的路由器內部頁面顯示所有設置的主機名(因此 dhclient 似乎工作),路由器本身可以作為 router.belkin 訪問,但沒有其他主機。 我的問題是路由器知道每個主機名,但主機不知道彼此的名字。我該如何解決這個問題? 註意:Nmap顯示DNS的端口udp/53在我的路由器上打開,但我找不到任何方法在Web界面上配置它。 添加://這是“Belkin F7D3302 v1”

最佳答案

如果局域網上的計算機運行相對現代化的操作系統,則可以通過附加“ .local“到他們的主機名,像這樣: ping MACHINENAME.local 要從給定IP獲取名稱,請使用 avahi-resolve-address MACHINEIP

要查看本地網絡上所有已連接的計算機名稱和IP,請使用以下BASH命令: px-lan-scan() { LOCAL_MASK=$(ip -o -4 addr show | awk -F '[ /]+' '/global/ {print $4}' | cut -d. -f1,2,3) GATEWAY=$(route -n | \grep '^0.0.0.0' | awk '{print $2}') if [ $1 ] ; then range=$1 ; else range="10" ; fi

for num in $(seq 1 ${range}) ; do
    IP=$LOCAL_MASK.$num
    if [[ $IP == $GATEWAY ]] ; then MACHINE="gateway" ; else MACHINE=$(avahi-resolve-address $IP 2>/dev/null | sed -e :a -e "s/$IP//g;s/\.[^>]*$//g;s/^[ \t]*//") ; fi
    ping -c 1 $IP>/dev/null
    if [ $? -eq 0 ] ; then
        echo -e "UP    $IP \t ($MACHINE)" ; else
        echo -e "DOWN  $IP"
    fi
done

}

轉載註明原文: 如何解決本地域名?