2012-11-27 5 views
0

내 LAN 네트워크에서 가능한 모든 Raspberry Pis (Raspbian 실행) 목록을 내 Android 2.3.5 전화로 가져 오려고합니다. 이 네트워크의 다른 장치는, 그래서 의사 코드에서,이 일에 대해 갈 생각하는 방식이었다 :LAN 장치에서 호스트 이름을 볼 수 없습니다.

sudo hostname rpi0 
:

foreach ip 0..254 
    hn = gethostname("192.168.0." + ip); 
    if(hn == "rpi*") { 
     do_something(); 
    } 

나는 성공적으로 RPI의 호스트 이름을 설정 한

라우터가 RPi가 192.168.0.4에 연결되어 있음을 보여줍니다. ping 내 Win7 PC에서 ip 주소 192.168.0.4 수 있지만 ping 호스트 이름, 또는 nslookup IP 또는 호스트 이름을 수 없습니다.

내 전화에서 자바로 아래의 코드를 시도하면 연결할 수 있다고 주장하지만 get hostname 줄은 호스트 이름이 아닌 ip 주소를 반환합니다. 호스트 이름을 찾을 수없는 경우 호스트 이름 대신 IP 주소가 반환됩니다. :

InetAddress inetAddress = InetAddress.getByAddress(ipAddress); 
Log.d(TAG, inetAddress.isReachable(5000)); 
Log.d(TAG, inetAddress.getHostName()); 

내가 뭘 잘못하고 있는지 알아? LAN상에서 하나의 유형의 장치를 모두 찾는데도 이것은 정상적인 방법입니까? 그렇다면, 나는 안드로이드 측면이 정확하다고 확신하지만, LAN에 대해서는 그다지 잘 모른다.

추신 : 죄송합니다.이 질문이 길고 복잡하면 시도한 모든 것을 포함하고 싶습니다.

Software version "R36" 
Hardware version 2.00 

감사

한마디로

답변

2

: - 그것은 호스트 이름 rpi0과 IP 주소 192.168.0.4 사이에 연관성이없는 당신의 DNS가 예상대로 작동하지 않습니다 또한 내가 주장하는 버진 Superhub을 사용하고 있습니다.

여기에는 여러 가지 이유가있을 수 있습니다. 그 중 하나는 모든 가정용 라우터가 로컬 영역을 유지하는 것은 아니라는 것입니다. 라우터에 해당하는 경우에는 운이 좋지 않을 수 있습니다.

라우터가 로컬 영역을 유지하는 경우 PI가 올바른 호스트 이름을 사용하여 DHCP 요청을 실행하는지 확인하십시오. 호스트 이름을 설정 한 후 PI를 연결/연결 해제하면됩니다.

관련 문제