(하드웨어 기능을 통해) 현재 호스트를 프로그래밍 방식으로 감지하는 가장 좋은 방법

(하드웨어 기능을 통해) 현재 호스트를 프로그래밍 방식으로 감지하는 가장 좋은 방법

다른 물리적 컴퓨터에서 부팅하고 싶은 Linux가 설치된 하드 드라이브가 있습니다. 내 질문은 드라이브가 연결된 컴퓨터를 프로그래밍 방식으로 감지하는 것이 가능한지 여부입니다. 예를 들어, 각 워크스테이션에 대한 고유한 하드웨어 정보 해시를 생성하기 위해 cat /proc/cpuinfo에서 호출하고 파이핑하려고 시도했지만 sha256sum/proc의 목록이 재부팅할 때마다 항상 동일한 정보를 유지하는 것은 아닌 것 같습니다. 이 방법을 사용하면 내 해시 값이 계속 변경됩니다.

이를 수행하는 쉬운 방법이 있습니까?

답변1

Tom Hunt가 의견에서 제안한 대로 네트워크 인터페이스 중 하나의 MAC 주소를 사용하십시오. MAC 주소는 고유합니다. (이는 모든 컴퓨터에 최소한 하나의 네트워크 인터페이스가 있다고 가정하지만 이는 합리적인 가정입니다.)

인터페이스가 여러 개 있을 수 있습니다. 다양한 경우의 문제를 피하기 위해 모두 동일한 시스템의 유효한 식별자로 처리하는 것이 좋습니다. 인터페이스는 다른 순서로 감지되면 다른 이름이 할당될 수 있으며 일부 인터페이스는 이동 가능하거나(예: USB 동글) 비활성화될 수 있습니다(예: USB 동글). Wi-Fi 킬 스위치)).

이 명령을 사용하면 현재 사용 가능한 모든 네트워크 인터페이스의 MAC 주소를 나열할 수 있습니다(사용 중인지 여부에 관계 없음).

ip addr show | awk '$1 == "link/ether" {print $2}'

관련 정보