mDNS 서비스 검색을 가져오고 해당 IP 주소를 가져오는 Linux 명령

mDNS 서비스 검색을 가져오고 해당 IP 주소를 가져오는 Linux 명령

내 WiFi 모듈에서 mDNS 서비스를 브로드캐스트하고 있습니다. 내 Linux PC에서 이를 찾아 IP 주소를 얻어야 합니다.

  1. mdns-scan 명령을 사용했는데 서비스 이름이 나열됩니다.
  2. avahi-browse --all을 사용했는데 서비스 이름이 나열됩니다.
  3. 하지만 해당 서비스의 IP 주소를 어떻게 얻을 수 있나요? 그것이 내 요구 사항입니다.
  4. Android 애플리케이션에서는 서비스에 대한 전체 세부정보를 얻을 수 있습니다. 리눅스에서는 어떻게 얻나요?
  5. config -a 및 nmap도 시도했습니다.

답변1

avahi-browse --all을 사용했는데 서비스 이름이 나열됩니다.

사용avahi-resolve --name호스트 이름을 해당 IP 주소에 매핑합니다.

또는 mDNS *.local호스트 이름을 시스템 전체에서 확인할 수 있도록 하려면 다음을 사용할 수 있습니다.nss-mdns(Avahi 백엔드 사용) 또는 nss-resolve (systemd-resolved 백엔드 사용). 이렇게 하면 모든 애플리케이션이 마치 일반 DNS인 것처럼 mDNS 이름을 사용할 수 있습니다.

Android 애플리케이션에서는 서비스에 대한 전체 세부정보를 얻을 수 있습니다. 리눅스에서는 어떻게 얻나요?

Android 애플리케이션에서는 OS 제공 API를 사용하고 있습니다. 마찬가지로 Linux에서는 적절한 OS 제공 API를 사용해야 합니다.libavahi 클라이언트또는libavahi-glib~ 아니다임의의 CLI 도구가 서로 붙어 있습니다. 나열된 모든 도구는 스크립팅용이 아닌 시스템 관리자가 수동으로 사용하기 위한 것입니다.

DNS-SD는 서비스의 추가 정보를 TXT 레코드에 저장합니다. API 예제에 표시된 것처럼 "콜백 해결" 함수는 추가 작업을 수행할 필요 없이 자동으로 TXT 레코드 배열을 매개변수로 수신합니다.

답변2

이것이 최선의 해결책이 아닐 수도 있는 자동화 스크립트에 이것이 필요한지는 잘 모르겠지만, 간단한 ping명령으로도 IP 주소를 얻을 수 있습니다.

다음 예를 참조하세요.

$ ping lightpizero.local
PING lightpizero.local (192.168.0.104) 56(84) bytes of data.

이 경우 주소는 다음과 같습니다.192.168.0.104

관련 정보