2011-07-04 7 views

答えて

1

ブロードキャストネットワークアドレスにICMP pingを送信できます。あなたのインターフェイスIPは192.168.0.0/24ネットワーク内にある場合たとえば、あなたは192.168.0.255にpingを送信します -

[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 pingを送信するために、あなたはrawソケットをオープンする必要があります&ですから、root権限が必要です。ほとんどのOSのpingプログラムはsetuidのルートプログラムなので、どのユーザーでも呼び出すことができます。

+0

ありがとうJaidev、どうやって問題を解決するにはどうすればいいですか? – CoDe

+0

あなたはアンドロイドとしてそれをタグ付けしているので、私はアンドロイドを信じると、実際には - runtime.exec( "su");のようなことをする必要があります。 通常のUNIXでは、プログラムでsetuid(0)を実行する必要があります。プログラムバイナリはrootが所有し、setuidビットが設定されている必要があります。 する必要があります:chown root your_exe; setuid u + s your_exe; 編集:これはあなたが既にルートアクセス権を持っていたことを意味します。あなたがroot権限を持っていない場合は、プログラムで取得することはできません。 – jman

+0

ああ、私はルートアクセスなしでICMPを使うことはできません... – CoDe

関連する問題