2010-03-25 1 views
0

간단한 UDP ping/pong 프로토콜을 구현하여 동일한 WiFI 라우터에 연결된 다른 컴퓨터를 검색했습니다. 이것은 많은 WiFI 및 이더넷 라우터에서 잘 작동하지만 거리에서 나가서 시도하면 많은 공용 WiFI 네트워크가 UDP 브로드 캐스트/멀티 캐스트를 사용할 수 없게되거나 UDP가 완전히 비활성화 된 것으로 보입니다.UDP 브로드 캐스트 또는 멀티 캐스트 외에도 WiFI 네트워크에서 컴퓨터를 검색하는 데 사용할 수있는 다른 방법은 무엇입니까?

WiFI 라우터에 연결된 컴퓨터를 검색하려면 어떤 다른 옵션이 필요합니까? (네트워크 회원간에 Ad-Hoc 네트워크를 만들고 싶지만 가능하지 않습니다.)

무언가를 TCP 시도 (내 서브 네트워크에서 가능한 모든 IP에 대한 연결을 시도하는 것) 그러나 이것은 매우 비용이 많이 들고 여러 번 순환해야하고 최근에 네트워크에 연결된 모든 컴퓨터를 찾지 못할 것입니다.

+0

안녕하세요, 세부 정보에 관심이 있습니다.이 udp 방식을 실제로 구현했습니다. 몇 가지 세부 사항을 지적 해 주시겠습니까? – Moonlit

답변

6

"컴퓨터"만 쉽게 검색 할 수있는 방법은 없습니다. 그러나 ARP 요청을 사용하는 거의 모든 네트워크 장치를 찾을 수 있습니다.

단계는 다음과 같습니다

  • 가능한 모든에 대한 ARP 요청을 보내기 :

    1. 연결 네트워크
    2. 에 ("192.168.0.0/24"예를 들어) 네트워크 IP 주소 범위를 가져옵니다 이 범위 ("192.168.0.1"=> "192.168.0.254")로 회신 보통

  • 위한
  • 기다리 주소, 네트워크 장치 (R)를 ARP 응답 IPv4가 작동하려면 ARP가 필요하기 때문에 절충합니다.

    추가 리소스 here을 찾을 수 있습니다.

    참고 : 이렇게하려면 관리자 권한 (UNIX의 경우 root)이 있어야합니다. 위조 ARP 요청을 보내려면 일반적으로 상승 된 권한이 필요합니다.

    또 다른 방법은 브로드 캐스트 핑 (ping -b 192.168.0.255 in UNIX OS)을 보내는 것입니다. 그러나 Windows 컴퓨터 (및 일부 다른 장치)는 일반적으로 이러한 핑 (ping)에 응답하지 않습니다.

  • +0

    이 방법으로 호스트가 무선으로 연결되어 있는지 여부를 쉽게 확인할 수 없다는 사실을 잊어 버렸습니다. 그러나 MAC 주소를 다시 얻었으므로 공급 업체 ID를 확인하고 사용 된 인터페이스가 무선인지 여부를 확인할 수 있습니다. Garanties tought. – ereOn

    0

    아마도 bonjour을 시도해 볼 수 있습니다.

    또한 많은 액세스 포인트에서 클라이언트와 클라이언트 간의 통신을 비활성화 할 수 있습니다. 테스트 중에 실행중인 것일 수 있습니다.

    +0

    나는 starbuck의 "attwifi"가 udp 방송을 차단했다는 것을 알았습니다. – Gubatron

    관련 문제