2017-03-07 1 views
1

Ich arbeite vor kurzem an einem Android-Projekt, das Zugriff auf die ARP-Tabelle erfordert. Eine der Anforderungen besteht darin, alle Methoden zu vermeiden, die ein gerootetes Gerät benötigen. Also, meine Frage ist: gibt es eine Möglichkeit, auf die ARP-Tabelle in Android zuzugreifen, ohne das Gerät zu verwurzeln?Zugriff auf ARP-Tabelle ohne Root in Android

Derzeit habe ich festgestellt, dass die meisten Ansätze die/proc/net/arp für den ARP-Tabellenzugriff verwenden, der root-Berechtigung erfordert, und ich bin mir nicht sicher, ob dies der einzige Weg ist.

+0

Haben Sie einen anderen Weg zu ARP-Tabelle Zugang gefunden? –

Antwort

0

Ich kann auf ARP-Tabelle ohne root zugreifen. Hier ist mein Code:

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; 
} 
Verwandte Themen