2017-03-07 22 views
1

私は最近、ARPテーブルにアクセスする必要があるAndroidプロジェクトを作成しています。要件の1つは、ルートされたデバイスを必要とする方法を避けることです。だから、私の質問は: そこにデバイスを根絶せずにアンドロイドのARPテーブルにアクセスする方法はありますか?AndroidでルートなしのARPテーブルにアクセス

現在、ほとんどのアプローチではroot権限が必要なARPテーブルへのアクセスに/ proc/net/arpを使用していますが、これが唯一の方法かどうかはわかりません。

+0

あなたはARPテーブルへのアクセス方法がありますか? –

答えて

0

ルートなしでARPテーブルにアクセスできます。ここに私のコードです:

string GetMACAddressviaIP(string ipAddr) 
{ 
    string result = ""; 
    ostringstream ss; 
    ss << "/proc/net/arp"; 
    string loc = ss.str(); 

    ifstream in(loc); 
    if(!in) 
    { 
     printf("open %s failed\n",loc.c_str()); 
     return result; 
    } 

    string line; 
    while(getline(in, line)){ 
     if(strstr(line.c_str(), ipAddr.c_str())) 
     { 
      const char *buf = strstr(line.c_str(), ":") - 2; 
      int counter = 0; 
      stringstream ss; 
      while(counter < 17) 
      { 
       ss << buf[counter]; 
       counter++; 
      } 
      result = ss.str(); 
     } 
    } 

    return result; 
} 
関連する問題