avahi를 실행하는 컴퓨터가 네트워크의 다른 장치와의 호스트 이름 충돌로 인해 foo-2, foo-3 등으로 동적으로 변경되는 경우 어떻게 자체 호스트 이름을 확인하고 표시할 수 있습니까?
두 머신(모두 호스트 이름이 foo인)이 avahi-daemon을 실행하고 동일한 네트워크에 있는 경우 예상대로 ssh를 통해 foo.local
액세스 할 수 있습니다 foo-2.local
. 예를 들어, avahi는 호스트 이름 충돌을 올바르게 처리하고 있습니다.
그러나 명령은 두 시스템 모두에서 hostname
반환됩니다 foo
. 따라서 avahi가 호스트 이름을 바꾸면 동적으로 업데이트되지 않습니다.
어떤 명령이 표시되나요?옳은(동적) 컴퓨터의 호스트 이름에 액세스하시겠습니까?
이것은 모바일 장치이며 여러 장치가 있을 때 사용자가 "자신의" 장치에 접근하기 위해 입력해야 하는 호스트 이름을 알 수 있도록 각 장치에 "내 호스트 이름은 XXXX.local입니다"를 표시하고 싶습니다.
답변1
달리기:
avahi-resolve -a <IP> | cut -f 2
전달한 IP 주소에 대해 mDNS에 등록된 호스트 이름 목록(한 줄에 하나씩)이 반환됩니다. 자신의 로컬 IP를 전달하면 등록한 내용이 반환됩니다. 일반적인 상황에서는 로컬 호스트 이름(또는 충돌이 있는 경우 증분 호스트 이름)과 동일한 행을 반환해야 합니다.
cut
마지막에 해당 명령을 제거 하면 첫 번째 탭에서 분할하고 각 줄의 두 번째 부분을 가져와 자신의 코드에서 직접 줄을 구문 분석할 수 있습니다.
그리고, 그리고가능한이 정보를 얻기 위해 DBus에 전화를 걸 수 있지만 이에 대한 정보는 찾지 못했습니다.