MAC 주소로 LAN에 있는 Windows PC의 이름을 어떻게 찾을 수 있나요?

MAC 주소로 LAN에 있는 Windows PC의 이름을 어떻게 찾을 수 있나요?

이것은 동등한 질문입니다여기OSX용. LAN에 있는 WIndows PC의 NetBIOS 이름을 MAC 주소로(또는 그 반대로) 찾는 가장 쉬운 방법은 무엇입니까?

이 작업은 IP를 통해 수행할 수 있습니다.

nmblookup -A a.b.c.d
nmblookup pc_netbios_name

MAC 주소에 대한 유사한 명령이 있습니까?

답변1

다음 표를 사용하여 IP 주소로 가장 최근에 연결한 장치의 MAC 주소를 찾을 수 있습니다 arp.

ping -c1 -w1 10.0.2.2
PING 10.0.2.2 (10.0.2.2) 56(84) bytes of data.
64 bytes from 10.0.2.2: icmp_seq=1 ttl=63 time=0.785 ms

--- 10.0.2.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.785/0.785/0.785/0.000 ms

arp -n 10.0.2.2
Address                  HWtype  HWaddress           Flags Mask            Iface
10.0.2.2                 ether   52:54:00:12:35:02   C                     eth0

이것을 작은 함수로 결합할 수 있습니다.

iptoarp() {
    local ip="$1"
    ping -c1 -w1 "$ip" >/dev/null
    arp -n "$ip" | awk '$1==ip {print $3}' ip="$ip"
}

iptoarp 10.10.0.2    # --> 52:54:00:12:35:02

내가 아는 한, MAC 주소에서 IP 주소나 NetBIOS 이름을 쉽게 얻을 수 있는 방법은 없습니다. arpwatch장치에서 채팅 로그 파일을 실행 하고 스캔하거나 pingLAN의 각 IP 주소를 차례로 스캔하여 arp응답을 찾으십시오.

답변2

tcpdump또는 wireshark해당 MAC 주소로 들어오고 나가는 네트워크 트래픽을 모니터링하는 데 사용할 수 있습니다 .

나는 이것을 패킷 로깅에 사용하는 경향이 있으며 tcpdump(tcpdump 출력을 읽는 것보다 더 나은 것이 필요한 경우) 패킷을 파일에 저장하고 분석을 위해 Wireshark의 GUI 버전에 로드합니다.

예를 들어:

MAC='01:02:03:04:05:06'
tcpdump -l -n -i br0 "ether src $MAC or ether dst $MAC"

관심이 없는 콘텐츠(예: 포트 80 또는 443)를 제외하거나 관심 있는 콘텐츠(예: tcp 및 udp 포트 137-139)를 포함하도록 tcpdump에 제공된 필터링 규칙을 조정할 수 있습니다. 그러나 어떤 패킷이 귀하에게 필요한 식별 정보를 제공할지 모르기 때문에 너무 많이 배제하지 마십시오.

Wireshark를 사용하여 분석하기 위해 파일에 패킷 로그를 쓰려면 -w filename해당 -s snaplen옵션과 함께 tcpdump의 옵션을 사용하십시오(전체 패킷을 캡처하려면 snaplen이 0임).

tcpdump -l -n -i br0 -w macdump.log -s 0 "ether src $MAC or ether dst $MAC"

좋은 샘플을 얻을 수 있을 만큼 오랫동안 실행하십시오. 대상 시스템이 다운되거나 비활성화된 경우 몇 시간이 걸릴 수 있습니다.

답변3

arp -n | grep -i YOUR:MAC:HERE | awk '{print $1}' | nslookup

이것이 작동하려면 로컬 네트워크에서 실행되는 네임서버가 필요하다고 확신합니다.

관련 정보