在Android中无根用户访问ARP表 [英] access ARP table without root in Android

查看:51
本文介绍了在Android中无根用户访问ARP表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我最近正在处理一个Android项目,该项目需要访问ARP表。其中一个要求是避免任何需要根设备的方法。所以,我的问题是: 有没有办法在不启动设备的情况下访问Android中的ARP表?

目前我发现大多数方法都使用/proc/net/arp进行需要root权限的ARP表访问,我不确定这是否是唯一的方法。

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
",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;
}

这篇关于在Android中无根用户访问ARP表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆