2011-11-30 4 views
1

WLAN에 연결되어 특수 하드웨어 장치가 연결됩니다. 나는 그 IP를 알고 있기 때문에 소켓을 통해 그 장치와 통신한다.연결된 네트워크 장치의 고유 ID 가져 오기

ID가 네트워크에서 하드웨어 장치를 식별 했습니까? Java에서 연결된 장치의 MAC 주소를 얻는 것이 불가능하다는 것을 알았습니다. 다른 대안이 있습니까?

감사합니다, 안부

+0

장치의 IP를 이미 알고 있다고 명시해야합니다. 더 이상의 신분증이 필요합니까? 명확히하십시오. – NPE

+0

장치 IP가 고유하지 않습니다. 문제는 프로그램이 ips를 저장한다는 것입니다. 그리고 다른 장치가 연결되어 있고 장치와 동일한 IP를 가지고 있다면 그 장치를 구별 할 수 있어야합니다. – softwaresupply

+0

장치에서 실행되는 소프트웨어를 제어 할 수 있습니까? – NPE

답변

2

Mac 주소는 고유해야합니다. 어쩌면 ARP 테이블에서 필요한 정보를 얻을 수 있습니다. "arp -a"명령은 Windows 및 Linux에서 작동합니다.

그러나이있는 문제 :

  1. 이 장치가 라우터 뒤에있는 경우 ARP 테이블이
  2. 매우 변수입니다
  3. 는,이 작동하지 않는 휴대용 방법이 아니다.
+0

Java에서 콘솔을 구문 분석 해 주셔서 감사합니다. – softwaresupply

0

당신은 장치의 반응의 제어가없는 장치가 어떤 식별 API의 호출을 포함하며, 다음 바로 IP 주소를 사용하지 않는 경우 그 IP는 라우터를 통해 해당 장치에 정적으로 할당됩니다. 그런 다음 IP < -> 장치 목록의 자체 테이블을 만들거나 라우터에서 IP 테이블을 긁어 모을 수 있습니다.

생각해 보면 아마도 MAC 주소를 같은 방법으로 얻을 수 있습니다. 라우터의 구성 화면에서 DHCP 테이블을 긁습니다.

+0

위와 같이 IP가 고유하지 않습니다. 장치가 항상 동일한 IP를 갖는 것은 아니기 때문입니다. 예를 들어 장치를 다시 연결 한 후 또는 다른 라우터 네트워크에서도 마찬가지입니다. 런타임시 Java에서 고유 한 장치 ID를 찾고 싶습니다. – softwaresupply

+0

그렇다면이 네트워크에서 라우터에 액세스 할 수 없다고 생각합니까? 장치와 응용 프로그램에 대한 제어권이없고 식별 가능한 정보를 보내지 않고 식별 API가없고 응용 프로그램을 쿼리하는 방법이 고유 한 특성이 없다면 운이 없게됩니다. –

+0

경우에 따라 라우터를 제어 할 수 있습니다. 하지만 어쨌든 응용 프로그램은 런타임에 MAC 주소/ID를 결정해야합니다. – softwaresupply

관련 문제