네트워크에서 머신의 MAC 주소를 발견하는 방법?


12

네트워크에서 컴퓨터의 MAC 주소를 어떻게 검색합니까?

BIOS 만 설치하고 (운영 체제 없음) 사용 가능한 시스템을 검색해야합니다.

그리고 가동중인 시스템의 MAC 주소를 찾아야합니다.



답변:


8

관리되는 스위치에서 사용 가능한 정보에 액세스해야합니다. 관리되지 않는 네트워크가 있다면 그렇게 할 방법이 없습니다.

이는 대상 컴퓨터가 WoL ( Wake-on-LAN)을 수행 할 수 있다고 가정합니다 . 이 경우 서버에 대한 링크가 설정되고 (플래시 링크 LED를 찾으십시오) 네트워크 카드가 WoL 브로드 캐스트를 청취하고 있습니다. AFAIK, 카드는이 상태의 어떤 것에도 응답하지 않습니다. WoL이 없으면 카드가 꺼져있는 것 (링크 LED 없음) 일 수 있으며 전혀 작동하지 않습니다.


7

기계의 전원이 켜지지 않으면 불가능합니다.

전원이 공급되면 ARP 쿼리 등과 같은 것에 응답하기 위해 최소한의 네트워크 스택이 필요하므로 OS가 설치되어 있지 않으면 작동하지 않는 것 같습니다.

작동 할 수있는 것은 (알지 못하고 현재 테스트 할 수 없음) NIC가 연결되거나 전원이 켜졌을 때 NIC와 스위치가 통신하고 스위치 가이 방법으로 MAC 주소를 인식한다는 것입니다. 이 경우 관리 가능한 스위치가 필요하며 연결된 mac 주소를 쿼리하십시오.


2
bootp 또는 pxe 부팅을 요청하는 경우 네트워크 스택없이 얻을 수 있습니다 . 이것이 작동하는지 여부에 대해서는 기계에 달려 있다고 생각합니다.
Bart Silverstrim

6

Nmap 을 사용하여 다음 구문을 사용하여 매우 빠른 ARP 스캔을 수행 할 수 있습니다 .

nmap -sn -PR -oX nmap.xml 192.168.1.0/24

ARP 핑 (ARP 요청 만, ICMP, UDP 또는 TCP, 포트 스캔 없음)을 사용하여 지정된 IP 주소 범위를 스캔하고 IP 주소 / MAC 주소 / 호스트 이름 응답을 XML 파일 (nmap.xml)에 기록합니다.

XML 파일을 축소하고 CSV 파일 을 추출 하는 PowerShell 스크립트를 작성했습니다 . 또한 다운 호스트를 필터링합니다. XML 파일보다 Excel에서 사용하기가 더 쉽다는 것을 알았습니다. 관심있는 사람이라면 여기 스크립트가 있습니다.

# Define nmap input file
$NmapXMLFile = ".\nmap.xml"

# Initialize object array
$HostItems = @()

# Initialize index
$x = 0

# Load XML
[xml]$NmapXML = Get-Content $NmapXMLFile

# Loop through XML
ForEach ($HostNode in $NmapXML.nmaprun.host) {

  # Check host status
  If ($HostNode.status.state -eq "up") {

    # Create host object
    $HostObj = "" | Select-Object ID, Hostname, 'IP Address', 'MAC Address', Vendor

    # Store ID and increment index
    $HostObj.ID = $x += 1

    # Store hostname
    $HostObj.Hostname = $HostNode.hostnames.hostname.name

    # Loop through addresses
    foreach ($HostAddress in $HostNode.address) {

      # Check IP address
      If ($HostAddress.addrtype -eq "ipv4") {

        # Store IP address
        $HostObj.'IP Address' = $HostAddress.addr
      }

      # Check MAC address
      If ($HostAddress.addrtype -eq "mac") {

        # Store MAC address
        $HostObj.'MAC Address' = $HostAddress.addr

        # Store vendor
        $HostObj.Vendor = $HostAddress.vendor
      }
    }

    # Append host object to array
    $HostItems += $HostObj
  }
}

# Print host items
$HostItems

# Export host items to CSV
$HostItems | Export-CSV -NoType .\nmap.csv

위의 명령을 시도하고 오류가 발생했습니다 Scantype n not supported. 분명히 플래그 -sn는 Nmap 4.x에서 지원되지 않습니다.
Stefan Lasiewski

nmap 5.30에서 베타 1 변경 로그 :
John Homer

2
핑 스캔 건너 뛰기와 포트 스캔 건너 뛰기에 대한 기본 구문으로 -Pn 및 -sn으로 전환되었습니다. 이전에는 -PN 및 -sP 옵션이 권장되었습니다. 이것은 스캔 단계를 비활성화하는 일부 옵션에 대해보다 일반적인 구문을 설정합니다. 포트 스캔이 비활성화 된 경우에도 현재 버전의 Nmap이 훨씬 더 나아갈 수 있기 때문에 (-sC 및 --traceroute 포함) 우리는 가까운 미래에 대한 이전 옵션 이름에 대한 지원을 유지할 것입니다.
존 호머

그래서 기반으로, 당신은 해야 새로운 '-sn'매개 변수 대신에 '-sP'구문을 사용할 수 있습니다. 불행히도 테스트 할 nmap4 버전이 없습니다.
존 호머

3
  1. 스위치가 충분히 진보 된 경우 스위치 / 라우터에 대한 정보를보십시오.
    (Cisco 스위치에서 명령은입니다 show mac-address-table).
  2. 시스템에 PXE 지원 BIOS / 네트워킹 카드가있는 경우 DHCP 임대를 얻으려고 시도하므로 DHCP 로그에서 정보를 읽으십시오. DHCP가없는 경우 Wireshark로 모든 브로드 캐스트 트래픽을 덤프하고 DHCP 트래픽을 필터링하십시오. OS가없는 새로 구동되는 모든 시스템은 트래픽에 표시됩니다.

3

Unix 컴퓨터에서 같은 LAN에있는 OS가없는 컴퓨터를 듣고 가능하면 스위치가 아닌 허브를 통해 시도 할 수 있습니다.

arp
cat /proc/net/arp

또한 wiresharkOS 운영 체제에서 시도해 볼 수 있습니다 . 브로드 캐스트를 포함하여 BIOS 시스템의 통신을 포착하려면 허브를 사용하는 것이 좋습니다.


1

여기서 기본적인 문제는 이것이 레이어 2 정보이므로 스위치 만 볼 수 있다는 것입니다. 일부 스위치는이 정보를 엿볼 수있는 인터페이스를 제공하지만 스위치를 얻는 유일한 방법이 아닌 경우 스위치 사이에 허브를 설치하여 물리적 계층에서 가로채는 것입니다.

관리되는 스위치를 사용하는 경우이 정보가 스위치에서 제공 될 수 있습니다. 일부 최종 사용자 통합 라우터 / 스위치 (예 : ADSL 모뎀을 종종 패키지하는 종류)는 때때로 MAC 주소를 포함하는 DHCP 클라이언트 목록을 갖습니다.

비 관리 형 스위치를 사용하고 있고이 정보를 알고 싶다면 허브구입 하고 스위치를 일시적으로 교체하는 것이 좋습니다 . 그런 다음 wireshark를 실행하는 컴퓨터를 허브에 연결하고 ARP 패킷을 캡처하여 MAC 주소를 기록 할 수 있습니다. 또는 Echolot을 사용하여 ARP 패킷을 선택적으로 추적하고 MAC 주소 데이터베이스를 구축 할 수 있습니다.


편집-BIOS에 관한 부분 만 다시 읽으십시오. 이것은 계층 2 데이터를 가로채는 문제를 넘어서는 추가 과제를 제시합니다. 클라이언트는 네트워크를 통해 데이터를 보내지 않을 수도 있습니다. 클라이언트에 DHCP를 수행하거나 ARP 패킷을 전송하는 바이오스가있는 경우 스위치에서 볼 수 있어야합니다. 어떤 BIOS 버전이 이것을 지원하는지 잘 모르겠습니다.하지만 일부는 알고 있습니다.
imoatama

1

나를 위해 일한 해결책은 다음과 같습니다.

  1. BIOS에서 네트워크 부팅을 활성화하십시오. (예 : 네트워크 어댑터를 "PXE로 활성화"로 설정)
  2. 기계를 부팅하십시오.
  3. 컴퓨터가 네트워크에서 부팅을 시도하여 프로세스의 MAC 주소를 표시합니다.

1

2 초 안에 할 수있는 아주 쉬운 방법은 운영 체제가 상호 작용하는 모든 장치의 mac 및 IP 주소로 테이블을 작성한다는 사실입니다. 이것을 ARP TABLE이라고합니다. 문제는 모든 장치와 상호 작용하는 방법입니다. 브로드 캐스트 IP 주소를 간단히 핑할 수 있습니다. 일부 장치 또는 방화벽은 ICMP 핑 요청을 차단할 수 있기 때문에 완벽하지는 않지만 많은 시나리오에서 작동합니다.

명령은 다음과 같습니다 (ipv4 192.168.0.255 브로드 캐스트 주소).

ping 192.168.0.255

리눅스에서 사용 :

ping -b 192.168.0.255

장치가 응답 할 때까지 몇 초 기다린 후 다음을 수행하십시오.

arp -a

IPV6 핑에 대해서는 Giedrius Rekasius 코멘트를 참조하십시오

완벽하지는 않지만 도구, 연구, 시간 낭비, 모든 주요 운영 체제에서 작동하며 빠릅니다.


IPv4보다 IPv6을 통해 이러한 핑을 수행하는 것이 더 쉽고 안정적이라는 것을 알았습니다. 예제 명령은 다음과 같습니다 ping6 -c2 -n ff02::1%wlan0. 사용할 네트워크 인터페이스의 이름 만 업데이트하면됩니다. 해당 용도로 사용할 IP 주소는 항상 사용 ff02::1중인 네트워크에 관계없이 있습니다.
kasperd

1

Nmap으로 네트워크를 스캔 한 다음 ARP 테이블을 확인하십시오 ( arp -aLinux 배포판에서).



0

스위치 MAC 주소 테이블을 제안하려고했지만 누군가 이미 위의 내용을 다뤘습니다.

OS를 실행하고 있고 IP 주소가있는 컴퓨터 있다면 동일한 LAN에 연결할 수 있으며 http://nmap.org/ 에서 NMAP (또는 Zenmap과 같은 GUI 버전)을 사용할 수 있습니다. 동일한 LAN에서 응답하는 모든 시스템의 MAC 주소 정보를 가져와야합니다.

동일한 결과를 얻는 더 좋은 방법이있는 경우 MAC 주소를 가져와야하는 이유를 더 잘 이해하면 도움이됩니다.


0

예를 들어 연속 실행중인 arpalert를 사용하여 ARP 정보를 수집 할 수 있습니다. 이를 통해 시작 후 ARP 주소 세트를 볼 수 있습니다.

전원이 꺼진 기기는 ARP 응답을 보내지 않습니다.

프로세스 속도를 높이기 위해 arpalert를 실행중인 서버에서 네트워크의 nmap ping 스캔 (nmap -sP)을 사용하여 가능한 모든 (활성 및 실행중인) 호스트가 arp 쿼리에 응답하도록 트리거 할 수 있습니다. 나중에 정기적으로 nmap ping 스캔을 실행하면 짧은 호스트를 잡을 가능성이 높아집니다.

arpalert의 스 니펫 :

MAC이 목록에 없으면 arpalert는 MAC 주소와 IP 주소를 매개 변수로 사용하여 사전 정의 된 사용자 스크립트를 시작합니다.

nmap의 스 니펫 :

Nmap ( "Network Mapper")은 네트워크 탐색 또는 보안 감사를위한 무료 및 오픈 소스 (라이센스) 유틸리티입니다.

여기를 둘러보세요 :


0

나는 사용한다 : nmap -sP 192.168.1.1/24

(192.168.1.1/24를 IP 범위로 교체하십시오)

그것은 당신에게 가동중인 기계만을 보여줄 것이고 당신에게 다음과 같은 것을 줄 것입니다 :

[root@x ~]# nmap -sP 192.168.1.1/24
Starting Nmap 6.40 ( http://nmap.org ) at 2014-11-22 14:20 EST
Nmap scan report for 192.168.1.1
Host is up (0.0019s latency).
MAC Address: ZZ:ZZ:54:2E:E9:B4 (Unknown)
Nmap scan report for 192.168.1.33
Host is up (0.035s latency).
MAC Address: ZZ:ZZ:FA:2D:D7:D8 (Intel Corporate)
Nmap scan report for 192.168.1.254
Host is up (0.0020s latency).
MAC Address: ZZ:ZZ:31:02:98:19 (Asustek Computer)
Nmap scan report for 192.168.1.34
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 1.88 seconds

OS가 설치되어 있지 않으면 리눅스 라이브 CD를 사용할 수 있습니다 .nmap은 아마도 대부분에서 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.