2011-07-04 3 views

답변

1

브로드 캐스트 네트워크 주소로 ICMP 핑을 보낼 수 있습니다. 사용자 인터페이스 IP가 192.168.0.0/24 네트워크에있는 경우 예를 들어, 당신은 192.168.0.255로 핑을 보낼 것 -

[22:45:54 jmac:~]$ ping 192.168.0.255 
PING 192.168.0.255 (192.168.0.255): 56 data bytes 
64 bytes from 192.168.0.12: icmp_seq=0 ttl=64 time=0.159 ms 
64 bytes from 192.168.0.1: icmp_seq=0 ttl=64 time=99.708 ms 
64 bytes from 192.168.0.12: icmp_seq=1 ttl=64 time=0.147 ms 

을 그러나 응용 프로그램에서 ICMP 핑을 보내, 당신은 원시 소켓을 열어야합니다 & 따라서 루트 권한이 필요합니다. 대부분의 OS의 ping 프로그램은 setuid 루트 프로그램이므로 모든 사용자가 ping 프로그램을 호출 할 수 있습니다.

+0

감사합니다. Jaidev, 루트에 문제가 발생하는 방법을 알려주세요. – CoDe

+0

당신이 안드로이드로 태그를 추가했기 때문에, 나는 안드로이드에 대해 - runtime.exec ("su");와 같은 것을 실제로해야한다고 믿습니다. 정상적인 UNIX에서는 프로그램에서 setuid (0)을 수행해야합니다. 프로그램 바이너리는 root가 소유하고 setuid 비트를 설정해야합니다. 이렇게해야합니다 : chown root your_exe; setuid u + s your_exe; 편집 : 즉, 이미 루트 액세스 권한이 있음을 의미합니다. 루트 액세스 권한이 없으면 프로그래밍 방식으로 얻을 수 없습니다. – jman

+0

ohh 그래서 루트 액세스없이 ICMP를 사용할 수 없습니다 ... – CoDe

관련 문제