이것은 동등한 질문입니다여기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
장치에서 채팅 로그 파일을 실행 하고 스캔하거나 ping
LAN의 각 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
이것이 작동하려면 로컬 네트워크에서 실행되는 네임서버가 필요하다고 확신합니다.