首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android 10:如何在没有/proc/net/arp的情况下从Socket / Client PC获取MAC地址

在没有/proc/net/arp的情况下,可以通过以下步骤从Socket/Client PC获取MAC地址:

  1. 使用Java的NetworkInterface类获取网络接口列表。
    • NetworkInterface类提供了获取本地网络接口信息的方法。
    • 可以使用getNetworkInterfaces()方法获取所有网络接口的列表。
  • 遍历网络接口列表,找到与Socket/Client PC相匹配的网络接口。
    • 可以使用getInetAddresses()方法获取网络接口的IP地址列表。
    • 可以使用getHardwareAddress()方法获取网络接口的MAC地址。
  • 获取匹配的网络接口的MAC地址。
    • MAC地址以字节数组的形式返回,可以将其转换为十六进制字符串。

以下是一个示例代码,演示如何实现上述步骤:

代码语言:txt
复制
import java.net.*;
import java.util.*;

public class GetMacAddress {
    public static void main(String[] args) {
        try {
            Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
            while (interfaces.hasMoreElements()) {
                NetworkInterface networkInterface = interfaces.nextElement();
                if (isSocketClientPC(networkInterface)) {
                    byte[] mac = networkInterface.getHardwareAddress();
                    if (mac != null) {
                        StringBuilder sb = new StringBuilder();
                        for (int i = 0; i < mac.length; i++) {
                            sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
                        }
                        System.out.println("MAC Address: " + sb.toString());
                        break;
                    }
                }
            }
        } catch (SocketException e) {
            e.printStackTrace();
        }
    }

    private static boolean isSocketClientPC(NetworkInterface networkInterface) throws SocketException {
        // 根据实际情况判断是否为Socket/Client PC所在的网络接口
        // 可以根据网络接口的IP地址、名称、描述等进行判断
        return networkInterface.getName().equals("eth0");
    }
}

请注意,上述代码中的isSocketClientPC()方法用于判断是否为Socket/Client PC所在的网络接口。根据实际情况,您可能需要根据网络接口的IP地址、名称、描述等进行判断。

此外,腾讯云提供了一系列与云计算相关的产品,包括云服务器、云数据库、云存储等。您可以根据具体需求选择适合的产品。更多关于腾讯云产品的信息,请访问腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

UDP 请求丢失有哪些原因?

3.2 UDP socket缓冲区过小或数据过大造成的UDP丢包原因如果Client 发送的 UDP 报文很大,而 socket 缓冲区过小无法容下该 UDP 报文,那么该报文就会丢失。...(int));3.3 ARP缓存过期导致UDP丢包数据链路层地址解析协议APR(Address Resolution Protocol), 是根据IP地址获取物理地址的一个TCP/IP协议。...主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询...ARP 的缓存时间约 10 分钟,APR 缓存列表没有对方的 MAC 地址或缓存过期的时候,会发送 ARP 请求获取 MAC 地址,在没有获取到 MAC 地址之前,用户发送出去的 UDP 数据包会被内核缓存到...内存占用过高CPU过高磁盘IO太忙磁盘满了4.3 查看socket缓冲区的设置是否合理通过 cat /proc/sys/net/core/rmem_default 和cat /proc/sys/net/

1.8K20
  • 告知你不为人知的 UDP:疑难杂症和使用

    由于以太网 EthernetII 最大的数据帧是1518字节,除去以太网帧的帧头(DMAC目的 MAC 地址48bit=6Bytes+SMAC源 MAC 地址48bit=6Bytes+Type域2bytes...[1] UDP socket缓冲区满造成的UDP丢包 通过 cat /proc/sys/net/core/rmem_default 和cat /proc/sys/net/core/rmem_max可以查看...[3] ARP缓存过期导致UDP丢包 ARP 的缓存时间约10分钟,APR 缓存列表没有对方的 MAC 地址或缓存过期的时候,会发送 ARP 请求获取 MAC 地址,在没有获取到 MAC 地址之前,用户发送出去的...被丢弃的 UDP 包可以从 /proc/net/stat/arp_cache 的最后一列的 unresolved_discards 看到。...UDP 的丢包信息可以从 cat /proc/net/udp 的最后一列drops中得到,而倒数第四列 inode 是丢失 UDP 数据包的 socket 的全局唯一的虚拟i节点号,可以通过这个 inode

    21.5K96

    kali DOSDDOS攻击(局域网内)

    ,kali发送大量的tcp报文,正常情况下pc需要给kali(客户机)发包确认,之后kali(客户机)不在进行给pc(服务机)回包,让目标pc处于一个半链接状态(不能连上网)!...如果服务器没有反应,则继续使用并在87.5%再次发送DHCP Request广播包,进行续约,如果还是没有反应,并释放IP地址,及重新发送DHCP Discovery广播包来获取IP地址 当无任何服务器响应时...) 原理:用户服务物联网需要通过路由器的网关,这个时候给受害者发送arp报文,伪装上网的网关,受害者则认为kali攻击机的MAC地址是正常上网的Mac地址,则受害者给kali发送报文。...kali可以在进行处理(转发/拦截) g.ARP欺骗攻击获取照片 命令: :arpspoof -t 目标iP kali网关ip :echo 1 > /proc/sys/net/ipv4/ip_forward...:driftnet -i eth0 原理:arp欺骗攻击 加查看别人浏览的照片(没有加密)给受害者发送arp报文,伪装上网的网关。

    3.2K31

    干货!云网络丢包故障定位全景指南

    地址丢包 一般计算机网卡都工作在非混杂模式下,此时网卡只接受来自网络端口的目的地址指向自己的数据,如果报文的目的mac地址不是对端的接口的mac地址,一般都会丢包,一般这种情况很有可能是源端设置静态arp...表项或者动态学习的arp表项没有及时更新,但目的端mac地址已发生变化(换了网卡),没有更新通知到源端(比如更新报文被丢失,中间交换机异常等情况); 查看: 1.目的端抓包,tcpdump可以开启混杂模式...,可以抓到对应的报文,然后查看mac地址; 2.源端查看arp表或者抓包(上一跳设备),看发送的mac地址是否和下一跳目的端的mac地址一致; 解决方案: 1.刷新arp表然后发包触发arp重新学习(可能影响其他报文...驱动溢出丢包 netdev_max_backlog是内核从NIC收到包后,交由协议栈(如IP、TCP)处理之前的缓冲队列。...arp_filter配置丢包 在多接口系统里面(比如腾讯云的弹性网卡场景),这些接口都可以回应arp请求,导致对端有可能学到不同的mac地址,后续报文发送可能由于mac地址和接收报文接口mac地址不一样而导致丢包

    5.9K43

    IE 浏览器 DOM 树结构概览(上)

    1.3.1 安全攻击原理认知缺乏——ARP攻击原理剖析 先了解一下ARP原理:某机器A要向网关发送报文,会查询本地的ARP缓存表(对于anroid系统就是/proc/net/arp),找到网关的IP地址对应的...接着使用这个MAC地址发送数据。 ARP协议的原理存在一个可以被利用的漏洞:当A没有发起ARP Request时,其他人也可向A发送一个ARP Reply。...可以通过ipconfig /all查看PC的MAC,如:EC:17:2F:CE:78:62。...1.3.4.3 ARP攻击制造 Step1: 攻击前ARP表检查 攻击前先检测手机ARP表如下(可以看到HW address列没有出现两个同样的MAC地址,说明当前网络没有受到ARP攻击)。...,MAC是ec:17:2f:ce:78:62,说明我192.168.43.20要发包给攻击PC的话,可以正常找到攻击PC的MAC,这个没有问题。

    1.6K00

    【腾讯 TMQ 】WIFI 安全测试,其实不难

    1.3.1 安全攻击原理认知缺乏——ARP攻击原理剖析 先了解一下ARP原理:某机器A要向网关发送报文,会查询本地的ARP缓存表(对于anroid系统就是/proc/net/arp),找到网关的IP地址对应的...接着使用这个MAC地址发送数据。 ARP协议的原理存在一个可以被利用的漏洞:当A没有发起ARP Request时,其他人也可向A发送一个ARP Reply。...如果没有,这时S电脑要向全网络发送一个ARP广播包,大声询问:我的IP是192.168.0.3,硬件地址是MAC-S,我想知道IP地址为192.168.0.4的主机的硬件地址是多少?...[img594ca597ca39a.png] 可以通过ipconfig /all查看PC的MAC,如:EC:17:2F:CE:78:62。...1.3.4.3 ARP攻击制造 Step1: 攻击前ARP表检查 攻击前先检测手机ARP表如下(可以看到HW address列没有出现两个同样的MAC地址,说明当前网络没有受到ARP攻击)。

    2.3K00

    浅谈网络编程

    3、地址解析协议(ARP);       ARP协议的工作过程描述如下:       1、PC1希望将数据发往PC2,但它不知道PC2的MAC地址,因此发送了一个ARP请求,该请求是一个广播包,向网络上的其它...PC3和PC4 收到广播包后,发现其中的IP地址不是我的,因此保持沉默,不答复数据包。       3、PC1知道了PC2的MAC地址,它可以向PC2发送数据了。...同时它更新了自己的ARP缓存表,下次再向PC2发送信息时,直接从ARP缓存里查找PC2的MAC地址就可以了,不需要再次发送ARP请求。 4、反向地址解析协议(RARP)。      ...PC1从网卡上读取MAC地址,然后在网络上发送一个RARP请求的广播数据包,请求RARP服务器回复该PC的IP地址。      ...不过 epoll则没有这个限制,它所支持的FD上限是最大可以打开文件的数目,这个数字一般远大于2048,举个例子,在1GB内存的机器上大约是10万左 右,具体数目可以cat /proc/sys/fs/file-max

    60200

    浅谈网络编程

    3、地址解析协议(ARP); ARP协议的工作过程描述如下: 1、PC1希望将数据发往PC2,但它不知道PC2的MAC地址,因此发送了一个ARP请求,该请求是一个广播包,向网络上的其它...PC3和PC4 收到广播包后,发现其中的IP地址不是我的,因此保持沉默,不答复数据包。 3、PC1知道了PC2的MAC地址,它可以向PC2发送数据了。...同时它更新了自己的ARP缓存表,下次再向PC2发送信息时,直接从ARP缓存里查找PC2的MAC地址就可以了,不需要再次发送ARP请求。 4、反向地址解析协议(RARP)。...PC1从网卡上读取MAC地址,然后在网络上发送一个RARP请求的广播数据包,请求RARP服务器回复该PC的IP地址。...不过 epoll则没有这个限制,它所支持的FD上限是最大可以打开文件的数目,这个数字一般远大于2048,举个例子,在1GB内存的机器上大约是10万左 右,具体数目可以cat /proc/sys/fs/file-max

    88520

    arp欺骗攻击原理_arp攻击的原理及防范

    ARPSpoofing 什么是ARP协议 一台主机和另一台主机通信,要知道目标的IP地址,但是在局域网传输的网卡却不能直接识别IP地址,所以用APR解析协议将IP地址解析成MAC地址。...ARP协议的基本功能就是通过目标设备的IP地址,来查询设备的MAC地址。 在局域网的任意一台主机中,都有一个ARP缓存表,里面保存本机已知的此局域网中各主机和路由器的IP地址和MAC地址的对照表关系。...什么是ARP欺骗攻击 基于如下原则: 任何主机均能发送伪造包给局域网中的另一主机; 任一主机相信它们接受到的所有包; 当一个新的响应包到达时,它甚至在没有请求包被发送的情况下覆盖掉旧的记录。...arp攻击,并且作数据回流,第3条命令用于后面要进行的截取目标图片浏览记录攻击,第4条命令用于将/proc/sys/net/ipv4/ip_forward的文件值设置为0, 表示禁止数据包转发,1表示允许...将/proc/sys/net/ipv4/ip_forward的文件值设置为1后,再返回来,此时被攻击主机可以上网了。

    4.6K20

    LVS 负载均衡集群 – 直接路由模式(LVS-DR)

    Client 向目标 VIP 发出请求,Director(负载均衡器)接收 此时源 MAC 地址为 Client 的 MAC 地址 目标 MAC 地址为调度器 Director 的 MAC 地址...事先绑定了 VIP),于是处理这个报文 随后重新封装报文,将响应报文通过 lo 接口传送给物理网卡然后向外发出 此时源 MAC 地址为 RealServer 的 MAC 地址,目的 MAC 地址为 Client...的 MAC 地址 Client 将收到回复的报文 Client 认为得到正常的服务,而不会知道是哪一台服务器处理的 如果跨网段,则报文通过路由器会经由 Internet 返回给用户 二、LVS-DR...返回报文(源 IP 是 VIP)经路由器转发,重新封装报文时,需要先获取路由器的 MAC 地址 且发送 ARP 请求时,Linux 默认使用 IP 包的源 IP 地址(即 VIP)作为 ARP 请求包中的源...测试 LVS-DR 集群 使用 Win10 作为测试客户端(默认网关指向 VIP),从 Internet 中直接访问 http://192.168.10.25(VIP) Windows 10 也用 NAT

    69550

    数据包发送与嗅探

    */ unsigned char sll_addr[8]; /* MAC地址 */ }; ifreq结构定义在/usr/include/net/if.h,用来配置ip地址,激活接口,配置MTU...其中包含了一个接口的名字和具体内容——(是个共用体,有可能是IP地址,广播地址,子网掩码,MAC号,MTU或其他内容)。...的IP类型的数据帧 ETH_P_ARP 0x806 只接收发往本机mac的ARP类型的数据帧 ETH_P_ARP 0x8035 只接收发往本机mac的RARP类型的数据帧...ETH_P_ALL 0x3 接收发往本机mac的所有类型(IP、ARP、RARP)的数据帧,并接收从本机发出的所有类型的数据帧 (...(4)获取数据包 a) 单次获取,立即返回退出 u_char * pcap_next(pcap_t * p, struct pcap_pkthdr * h) 如果返回值为NULL,表示没有抓到包。

    2.6K30

    流量都去哪儿了 —— 三板斧搞定Android网络流量测试

    22 : 不抓取目标端口是22的数据包 (10)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24 ---- 这里会有一个疑问,为什么有时抓包为0?...如果没有指定, tcpdump 会从系统接口列表中搜寻编号最小的已配置好的接口(不包括 loopback 接口)。一但找到第一个符合条件的接口, 搜寻马上结束。...Linux系统有3个地方保存流量统计文件: (1)在/proc/net/dev下可以查看各个网络接口的收发流量 (2)在/sys/class/net/下可以找到相关类别(如rmnet0)的目录.在其子目录...(int uid) //获取某个网络UID的发送字节数 这些都是从第一次启动程序到最后一次启动的统计量。...(2)PC浏览器(如chrome)设置成手机的UA,通过pc浏览器自带的网络分析工具或抓包工具测试流量。此方法适用于web前端页面流量测试。

    4.1K61

    局域网ping有时通有时不通_ping不通局域网电脑

    3.1.2 ping具体排查过程: 首先应该用ifconfig/all查看对应网络连接的物理状态,当没有媒体已断开的显示时,这时用arp -a | findstr ip地址,看是否获取到对应的ip...地址的mac,没有的话,应该是ping命令执行时,发出的请求对方的mac地址的arp消息没有得到应答,此时根本没有发出ping的request消息。...去pc的arp缓存查询如下: cmd下ipconfig/all 查询集成网卡的mac地址和ip地址如下: 而应该从usb网卡上发出 查看路由关系 查看发现172.31.232.0/24的直连路由没有生成...mac地址,没有的话,会发出arp查询网关的mac地址,有的并且响应后,直接组包发给网关的mac。.../proc/sys/net/ipv4/conf/eth2/rp_filter 关闭eth2的检测 ping的结果如下: 发现回包的ttl是64,没有经过路由,ttl没有-1的动作,说明发出源是直连路由

    10.5K82

    Linux 集群总结 + LVS(负载均衡器)原理及配置

    ②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将客户端请求报文的源MAC地址改为自己DIP的MAC地址,目标MAC改为了RIP的MAC地址,并将此包发送给RS。...注意: 需要设置lo接口的VIP不能响应本地网络内的arp请求。 总结: 1、通过在调度器 LB 上修改数据包的目的 MAC 地址实现转发。注意源地址仍然是 CIP,目的地址仍然是 VIP 地址。...响应及公告功能 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net.../sys/net/ipv4/conf/lo/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce echo "1" > /proc/.../sys/net/ipv4/conf/lo/arp_announce echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore echo "0" > /proc

    3K20

    【作者投稿】无线渗透(序章)—MITM

    ,一般不会改变,而ARP协议就是用来帮助主机获取目标主机的MAC地址!...MAC地址,如果有就直接发送数据包到该MAC地址;如果没有那么源主机就会在本网段发ARP广播包,查询目标主机的IP对应的MAC地址(注:这里只讨论局域网环境) 3.收到ARP广播包的主机会检查数据包中的目的...),然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址 4.源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输...,就好比我们直接给client发送一个ARP数据包声称:我的MAC对应的IP就是网关IP,以后把你的的数据包发给我让我帮你转发吧,然后client想都不想就会相信,而且也不理会自己是否发送了ARP广播包...,成为中间人 echo 1 > /proc/sys/net/ipv4/ip_forward && arpspoof -t 192.168.1.106 -r 192.168.1.1 ?

    85400

    12 . Python3之网络编程

    mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号) 广播 有了mac地址,同一网络内的两台主机就可以通信了(一台主机通过arp协议获取另外一台主机的mac...mac的广播方式实现,计算机在发包时,获取自身的mac是容易的,如何获取目标主机的mac,就需要通过arp协议 arp协议功能:广播的方式发送数据包,获取目标主机的mac地址 协议工作方式:每台主机ip...网关mac,目标主机ip 二:分析172.16.10.10/24与172.16.10.11/24处于同一网络(如果不是同一网络,那么下表中目标ip为172.16.10.1,通过arp获取的是网关的mac...# port端口号:唯一标识一台计算机上的某一个应用程序 # ip+port :能够唯一标识全世界上独一无二的一台计算机上的某一个应用程序 # 补充: # arp协议:根据ip地址解析mac...一般,超时期应该在刚创建套接字时设置,因为它们可能用于连接的操作(如connect()) s.gettimeout() 返回当前超时期的值,单位是秒,如果没有设置超时期,则返回None。

    1K40
    领券