首页
学习
活动
专区
工具
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.5K20

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报文,伪装上网网关。

2.9K30

告知你不为人知 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

20.6K95

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

地址丢包 一般计算机网卡都工作在非混杂模式下,此时网卡只接受来自网络端口目的地址指向自己数据,如果报文目的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地址不一样而导致丢包

5K40

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

1.3.1 安全攻击原理认知缺乏——ARP攻击原理剖析 先了解一下ARP原理:某机器A要向网关发送报文,会查询本地ARP缓存表(对于anroid系统就是/proc/net/arp),找到网关IP地址对应...接着使用这个MAC地址发送数据。 ARP协议原理存在一个可以被利用漏洞:当A没有发起ARP Request时,其他人也可向A发送一个ARP Reply。...可以通过ipconfig /all查看PCMAC: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的话,可以正常找到攻击PCMAC,这个没有问题。

1.5K00

【腾讯 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查看PCMAC:EC:17:2F:CE:78:62。...1.3.4.3 ARP攻击制造 Step1: 攻击前ARP表检查 攻击前先检测手机ARP表如下(可以看到HW address列没有出现两个同样MAC地址,说明当前网络没有受到ARP攻击)。

2.1K00

浅谈网络编程

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

58400

浅谈网络编程

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

86520

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.5K20

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

49050

数据包发送与嗅探

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

2.5K30

流量都去哪儿了 —— 三板斧搞定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前端页面流量测试。

3.7K61

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

3.1.2 ping具体排查过程: 首先应该用ifconfig/all查看对应网络连接物理状态,当没有媒体已断开显示时,这时用arp -a | findstr ip地址,看是否获取到对应ip...地址mac没有的话,应该是ping命令执行时,发出请求对方mac地址arp消息没有得到应答,此时根本没有发出pingrequest消息。...去pcarp缓存查询如下: 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动作,说明发出源是直连路由

9K81

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

②.负载均衡器收到报文后,发现请求是在规则里面存在地址,那么它将客户端请求报文MAC地址改为自己DIPMAC地址,目标MAC改为了RIPMAC地址,并将此包发送给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

2.7K20

【作者投稿】无线渗透(序章)—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 ?

81200

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。

97740
领券