android设备 如何通过mac地址知道ip地址
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android设备 如何通过mac地址知道ip地址相关的知识,希望对你有一定的参考价值。
有两个IP不固定的设备,如何远距离通信?
TCP/IP中 有没有可以通过远方的MAC地址知道对应IP的机制?
public String GetHostIp()
try
for (Enumeration<NetworkInterface> en = NetworkInterface
.getNetworkInterfaces(); en.hasMoreElements();)
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> ipAddr = intf.getInetAddresses(); ipAddr
.hasMoreElements();)
InetAddress inetAddress = ipAddr.nextElement();
if (!inetAddress.isLoopbackAddress())
return inetAddress.getHostAddress();
catch (SocketException ex)
catch (Exception e)
return null;
MAC 就不列举了自行百度,但是你说的问题 让两台设备TCP通讯,如果是在局域网内,也就是用wifi,你获取ip 然后一个客户端一个服务器是可以连接成功的。但是如果用外网的话,就不是这么简单了。比如 我用android 作为客户端PC作为手机 如果手机用外网访问服务器,这就相当于外网访问内网服务器,需要在服务器进行配置 一、在路由器的转发规则设置映射 二、(这个有的情况不需要,例如,你的pc网络是铁通你的手机是移动卡,就不用第二部,如果你的手机是联通卡就需要这步)申请一个固定Ip 给客户打电话
如何在 Android 上以编程方式从 Mac 地址获取 IP 地址?
【中文标题】如何在 Android 上以编程方式从 Mac 地址获取 IP 地址?【英文标题】:How to get an IP address from Mac address programmatically on Android? 【发布时间】:2012-08-18 21:29:42 【问题描述】:以编程方式,我从同一网络上的设备获取了其他支持 Wifi 的设备的 Mac 地址。我也需要在这里申请。是否有任何应用程序或任何其他可能性可以通过在 Android 上使用这些 Mac 地址来获取网络上每个启用 wifi 的设备的 IP 地址?
【问题讨论】:
你是怎么得到MAC地址的? 我正在寻找代码来获取连接在同一网络上的其他设备的 MAC 地址。能否请您粘贴代码或链接。我正在搜索,但没有得到确切的结果。 【参考方案1】:如果您正在寻找安卓应用程序,您可以尝试Network Discovery,它工作得很好,可以列出您本地网络上的所有设备以及相应的 IP 和地址。
如果您正在寻找代码,那么该应用程序是可用的 on github 并且(除其他外)与 Yahel 解释的基本相同:它读取 /proc/net/arp。
注意:我不是此应用程序的作者。
【讨论】:
启动 Android Q 无法再访问 /proc/net/arp 文件。【参考方案2】:这个人的做法正好相反,所以它应该适合你。
诀窍是从设备中读取 ARP 缓存表。
http://www.flattermann.net/2011/02/android-howto-find-the-hardware-mac-address-of-a-remote-host/
【讨论】:
以上是关于android设备 如何通过mac地址知道ip地址的主要内容,如果未能解决你的问题,请参考以下文章
从Android应用程序获取设备的MAC地址和IP地址[重复]