0
누구나 프로토콜을 사용하여 네트워크에서 사용 가능한 IP 주소를 찾는 방법을 알고 있습니까?네트워크에서 사용되지 않는 IP 주소를 찾는 방법은 무엇입니까?
UDP 방송은 편도입니다. 그러나이 경우 모든 사용자가 리스너 앱을 가지고 있어야합니까?
다른 방법이 있습니까?
누구나 프로토콜을 사용하여 네트워크에서 사용 가능한 IP 주소를 찾는 방법을 알고 있습니까?네트워크에서 사용되지 않는 IP 주소를 찾는 방법은 무엇입니까?
UDP 방송은 편도입니다. 그러나이 경우 모든 사용자가 리스너 앱을 가지고 있어야합니까?
다른 방법이 있습니까?
브로드 캐스트 네트워크 주소로 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 프로그램을 호출 할 수 있습니다.
감사합니다. Jaidev, 루트에 문제가 발생하는 방법을 알려주세요. – CoDe
당신이 안드로이드로 태그를 추가했기 때문에, 나는 안드로이드에 대해 - runtime.exec ("su");와 같은 것을 실제로해야한다고 믿습니다. 정상적인 UNIX에서는 프로그램에서 setuid (0)을 수행해야합니다. 프로그램 바이너리는 root가 소유하고 setuid 비트를 설정해야합니다. 이렇게해야합니다 : chown root your_exe; setuid u + s your_exe; 편집 : 즉, 이미 루트 액세스 권한이 있음을 의미합니다. 루트 액세스 권한이 없으면 프로그래밍 방식으로 얻을 수 없습니다. – jman
ohh 그래서 루트 액세스없이 ICMP를 사용할 수 없습니다 ... – CoDe