CN110035133B - 在安卓WiFi-Direct连接中获取对等设备IP地址的方法及设备 - Google Patents

在安卓WiFi-Direct连接中获取对等设备IP地址的方法及设备 Download PDF

Info

Publication number
CN110035133B
CN110035133B CN201810028769.2A CN201810028769A CN110035133B CN 110035133 B CN110035133 B CN 110035133B CN 201810028769 A CN201810028769 A CN 201810028769A CN 110035133 B CN110035133 B CN 110035133B
Authority
CN
China
Prior art keywords
peer
address
wifi
steps
equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810028769.2A
Other languages
English (en)
Other versions
CN110035133A (zh
Inventor
柳建双
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Allwinner Technology Co Ltd
Original Assignee
Allwinner Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Allwinner Technology Co Ltd filed Critical Allwinner Technology Co Ltd
Priority to CN201810028769.2A priority Critical patent/CN110035133B/zh
Publication of CN110035133A publication Critical patent/CN110035133A/zh
Application granted granted Critical
Publication of CN110035133B publication Critical patent/CN110035133B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks
    • H04W84/12WLAN [Wireless Local Area Networks]

Abstract

本发明公开了一种在安卓WiFi‑Direct连接中获取对等设备IP地址的方法及设备,该方法包括以下步骤:与对等设备建立WiFi‑Direct连接;请求获取对等网络组信息,依据对等网络组信息确定对等设备相应的MAC地址;依据所述MAC地址及表示点对点连接的关键词检索ARP节点地址缓存表,确定对等设备相应的IP地址。该方法不改动Android原生WiFi‑Direct框架,通过对等设备的MAC地址及表示点对点连接的关键词检索ARP节点地址缓存表,直接获取对等设备的IP地址;且不依赖于对等设备,无需分配设备的角色;方法简单有效,在WiFi‑Direct连接状态下,可以保证能够获取到对等设备的IP地址。

Description

在安卓WiFi-Direct连接中获取对等设备IP地址的方法及 设备
技术领域
本发明涉及通信技术领域,尤其涉及一种在安卓WiFi-Direct连接中获取对等设备IP地址的方法及设备。
背景技术
WiFi-Direct标准是指允许无线网络中的设备无需通过无线路由器即可相互连接。与蓝牙技术类似,这种标准允许无线设备以点对点(P2P)形式互连,而且在传输速度与传输距离方面则比蓝牙有大幅提升。
在安卓(Android)系统的原生WiFi-Direct框架下,两个设备之间连接成功之后,在本地设备处于群组用户(Group Client,简称GC)角色时,其对等设备处于群组拥有者(Group Owner,简称GO)角色,本地设备可以通过WifiP2pInfo.groupOwnerAddress.getHostAddress()方法直接获取对等设备的IP地址;在本地设备处于GO角色时,其对等设备处于GC角色,此时,本地设备只能获取对等设备的MAC信息而无法直接获取对等设备的IP地址。
在不改动原生框架的情况下,行业内通用的获取对等设备IP地址的方法是:
(1)两个设备之间建立WiFi-Direct连接时,通过设置WifiP2pConfig.groupOwnerIntent建议值,尽量建议本地设备被协商分配为GC角色,但当对等设备的WifiP2pConfig.groupOwnerIntent建议值相同时,GO、GC的角色是随机的。
(2)本地设备被分配为GO角色时,通过额外创建Socket并监听,需要等到对等设备主动来连接时,通过Socket.getInetAddress()方法才获取到对等设备的IP地址;在多对等设备连接环境下,还需要根据Android原生WiFi-Direct框架获取到的MAC地址信息来甄选出准确的IP地址。
可见,现有的获取对等设备IP地址的方法复杂、需要分配设备角色、被动的依赖于对等设备,且并不能保证一定能够获取到对等设备的IP地址。
发明内容
针对现有技术的不足,本发明提出了一种在安卓WiFi-Direct连接中获取对等设备IP地址的方法及设备,该方法不改动Android原生WiFi-Direct框架,通过对等设备的MAC地址及表示点对点连接的关键词检索ARP节点地址缓存表,直接获取对等设备的IP地址,解决了现有对等设备IP地址获取方法需复杂、需要分配设备角色、被动的依赖于对等设备的问题。
为了实现上述目的,本发明技术方案如下:
一种在安卓WiFi-Direct连接中获取对等设备IP地址的方法,包括以下步骤:
S1:与对等设备建立WiFi-Direct连接;
S2:请求获取对等网络组信息,依据对等网络组信息确定对等设备相应的MAC地址;
S3:依据所述MAC地址及表示点对点连接的关键词检索ARP节点地址缓存表,确定对等设备相应的IP地址。
进一步地,步骤S2包含以下步骤:
S21:接收到本地的表示WiFi 点对点连接状态已发生改变的广播后,请求获取对等网络组信息;
S22:依据对等网络组信息确定对等设备的角色;
S23:依据对等设备的角色获取对等设备的WifiP2pDevice信息;
S24:从WifiP2pDevice信息中获取对等设备相应的MAC地址。
进一步地,步骤S3包含以下步骤:
S31:读取本地的/proc/net/arp节点,获取ARP节点地址缓存表;
S32:依据所述MAC地址检索ARP节点地址缓存表中的HW address项;
S33:依据“p2p”关键词检索ARP节点地址缓存表中的Device项;
S34:确定ARP节点地址缓存表中HW address项为所述MAC地址且Device项带有“p2p”关键词的一栏中所对应的IP address项,即为对等设备相应的IP地址。
进一步地,步骤S21包含以下步骤:接收到本地的WifiP2pManager.WIFI P2P_CONNECTION CHANGED ACTION广播后,通过WifiP2pManager.requestGroupInfo()方法请求获取对等网络组信息。
进一步地,步骤S22包含以下步骤:依据WifiP2pGroup类中的mIsGroupOwner成员确定本地设备的角色;依据本地设备的角色确定对等设备的角色。
进一步地,步骤S23包含以下步骤:若对等设备为群组拥有者角色,则依据WifiP2pGroup类内的mOwner成员得到对等设备的WifiP2pDevice信息;若对等设备为群组用户角色,则依据WifiP2pGroup类内的mClients成员得到对等设备的WifiP2pDevice信息。
一种在安卓WiFi-Direct连接中获取对等设备IP地址的设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算程序,计算程序被处理器执行时实现上述任意一项方法的步骤。
本发明的有益效果:
该方法不改动Android原生WiFi-Direct框架,通过对等设备的MAC地址及表示点对点连接的关键词检索ARP节点地址缓存表,直接获取对等设备的IP地址;且不依赖于对等设备,无需分配设备的角色;方法简单有效,在WiFi-Direct连接状态下,可以保证本地设备能够获取到对等设备的IP地址。
附图说明
图1为本发明方法的流程示意图。
图2为Android系统原生WiFi-Direct框架中WifiP2pGroup类的结构简图。
图3为Android系统原生WiFi-Direct框架中WifiP2pDevice类的结构简图。
图4为ARP节点地址缓存表的结构简图。
具体实施方式
下面结合附图和实施例,进一步阐述本发明。
实施例1:
如图1所示,一种在安卓WiFi-Direct连接中获取对等设备IP地址的方法,包括以下步骤:
S1:与对等设备建立WiFi-Direct连接。
S2:请求获取对等网络组信息,依据对等网络组信息确定对等设备相应的MAC地址。
S3:依据该MAC地址及表示点对点连接的关键词检索ARP节点地址缓存表,确定对等设备相应的IP地址。
该方法不改动Android原生WiFi-Direct框架,通过对等设备的MAC地址及表示点对点连接的关键词检索ARP节点地址缓存表,直接获取对等设备的IP地址;且不依赖于对等设备,无需分配设备的角色;方法简单有效,在WiFi-Direct连接状态下,可以保证本地设备能够获取到对等设备的IP地址。
具体地,步骤S2包含以下步骤S21-S23:
S21:接收到本地的表示WiFi点对点连接状态已发生改变的广播后,请求获取对等网络组信息(或称对等连接组信息)。
两个设备建立WiFi-Direct连接之后,本地设备Android原生WiFi-Direct框架将接收到本地的WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION广播,即表示WiFiP2P连接状态已发生改变,说明本地设备已经与相应的对等设备建立WiFi-Direct连接,然后,本地设备通过WifiP2pManager.requestGroupInfo()方法请求获取对等网络组信息,此时,WifiP2pManager.requestGroupInfo()方法里面的onGroupInfoAvailable()接口会被自动调用,得到WifiP2pGroup类,即所述对等网络组信息。
如图2所示,为WifiP2pGroup类的结构简图。WifiP2pGroup类是一个表示WiFi P2P群组的类。一个P2P群组由一个GO和一个或多个GC组成。其中,mIsGroupOwner成员定义了本地设备为GO角色还是GC角色,mOwner成员包含了本地设备与对等设备两者中属于GO角色的设备的WifiP2pDevice信息,mClients成员包含了本地设备与对等设备两者中属于GC角色的设备的WifiP2pDevice信息。
当本地设备为GO角色时,可能会同时与多个对等设备处于Direct连接,此时,本地设备WifiP2pGroup类的mClients成员中将存有多个对等设备的WifiP2pDevice信息。本地设备一次只能访问一个对等设备,本地设备将要访问哪个对等设备是已知的,本地设备的WiFi-Direct框架会获取当前将要访问的对等设备的相关广播信息,依据该相关广播信息即可从mClients成员中选出相应的对等设备的WifiP2pDevice信息。
S22:依据对等网络组信息确定对等设备的角色。
依据WifiP2pGroup类中的mIsGroupOwner成员可确定对等设备是处于群组拥有者角色还是群组用户角色状态。
实际上,mIsGroupOwner成员定义的是本地设备的角色,确定了本地设备的角色,对等设备的角色也就确定了。因为,两个设备之间采用WiFi-Direct连接时,当本地设备为GO角色时,其对等设备一定为GC角色;当本地设备为GC角色时,其对等设备一定为GO角色。因此,可以借助WifiP2pGroup类中的mIsGroupOwner成员确定对等设备的角色。
S23:依据对等设备的角色获取对等设备的WifiP2pDevice信息。
若对等设备为GO角色,则依据WifiP2pGroup类内的mOwner成员得到对等设备的WifiP2pDevice信息;若对等设备为GC角色,则依据WifiP2pGroup类内的mClients成员得到对等设备的WifiP2pDevice信息。
S24:从WifiP2pDevice信息中获取对等设备相应的MAC地址。
WifiP2pDevice类的结构如图3所示,WifiP2pDevice里面的deviceAddress即为对等设备的MAC地址。
具体地,步骤S3包含以下步骤S31-S34:
S31:读取本地设备的/proc/net/arp节点,获取ARP节点地址缓存表。
S32:依据MAC地址检索ARP节点地址缓存表中的HW address项。
S33:依据“p2p”关键词检索ARP节点地址缓存表中的Device项。
S34:确定ARP节点地址缓存表中HW address项为所述MAC地址且Device项带有“p2p”关键词的一栏中所对应的IP address项,即为对等设备相应的IP地址。
如图4所示,为ARP节点地址缓存表的简图。ARP节点地址缓存表保存了本地设备所连接的其它各目标设备的地址等信息,记录了各目标设备的MAC地址与IP地址的对应关系,其中包含了目标设备的名称(Device项)、MAC地址(HW address项)、IP地址(IP address项)等信息。
本地设备不仅会与各目标设备建立点对点连接,也会采用其它的方式与各目标设备进行连接。其中,采用点对点方式与本地设备建立连接的目标设备,其在ARP节点地址缓存表中的名称一定会带有“p2p”字样的关键词;再结合已获取的对等设备的MAC地址从这些名称中带有“p2p”字样的设备中确定相应的对等设备,便可唯一的找到该对等设备的IP地址。
实施例2:
本实施例提供了一种在安卓WiFi-Direct连接中获取对等设备IP地址的设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算程序,计算程序被处理器执行时实现实施例1的方法的步骤S1-S3。
具体地,计算程序被处理器执行时还实现实施例1的方法的步骤S21-S23。
具体地,计算程序被处理器执行时还实现实施例1的方法的步骤S31-S34。
以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的基本构思的前提下直接导出或联想到的其它改进和变化均应认为包含在本发明的保护范围之内。

Claims (6)

1.一种在安卓WiFi-Direct连接中获取对等设备IP地址的方法,其特征在于:
包括以下步骤:
S1:与对等设备建立WiFi-Direct连接;
S2:请求获取对等网络组信息,依据对等网络组信息确定对等设备相应的MAC地址;
S3:依据所述MAC地址及表示点对点连接的关键词检索ARP节点地址缓存表,确定对等设备相应的IP地址;
所述S2包含以下步骤:
S21:接收到本地的表示WiFi点对点连接状态已发生改变的广播后,请求获取对等网络组信息;
S22:依据对等网络组信息确定对等设备的角色;
S23:依据对等设备的角色获取对等设备的WifiP2pDevice信息;
S24:从WifiP2pDevice信息中获取对等设备相应的所述MAC地址。
2.根据权利要求1所述的在安卓WiFi-Direct连接中获取对等设备IP地址的方法,其特征在于:
所述S3包含以下步骤:
S31:读取本地的/proc/net/arp节点,获取ARP节点地址缓存表;
S32:依据所述MAC地址检索ARP节点地址缓存表中的HW address项;
S33:依据“p2p”关键词检索ARP节点地址缓存表中的Device项;
S34:确定ARP节点地址缓存表中HW address项为所述MAC地址且Device项带有“p2p”关键词的一栏中所对应的IP address项,即为对等设备相应的IP地址。
3.根据权利要求1所述的在安卓WiFi-Direct连接中获取对等设备IP地址的方法,其特征在于:
所述S21包含以下步骤:
接收到本地的WifiP2pManager.WIFI P2P_CONNECTION CHANGEDACTION广播后,通过WifiP2pManager.requestGroupInfo()方法请求获取对等网络组信息。
4.根据权利要求1所述的在安卓WiFi-Direct连接中获取对等设备IP地址的方法,其特征在于:
所述S22包含以下步骤:依据WifiP2pGroup类中的mIsGroupOwner成员确定本地设备的角色;依据本地设备的角色确定对等设备的角色。
5.根据权利要求1所述的在安卓WiFi-Direct连接中获取对等设备IP地址的方法,其特征在于:
所述S23包含以下步骤:若对等设备为群组拥有者角色,则依据WifiP2pGroup类内的mOwner成员得到对等设备的WifiP2pDevice信息;若对等设备为群组用户角色,则依据WifiP2pGroup类内的mClients成员得到对等设备的WifiP2pDevice信息。
6.一种在安卓WiFi-Direct连接中获取对等设备IP地址的设备,其特征在于:
包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算程序,计算程序被处理器执行时实现权利要求1至5中任意一项所述的方法的步骤。
CN201810028769.2A 2018-01-12 2018-01-12 在安卓WiFi-Direct连接中获取对等设备IP地址的方法及设备 Active CN110035133B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810028769.2A CN110035133B (zh) 2018-01-12 2018-01-12 在安卓WiFi-Direct连接中获取对等设备IP地址的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810028769.2A CN110035133B (zh) 2018-01-12 2018-01-12 在安卓WiFi-Direct连接中获取对等设备IP地址的方法及设备

Publications (2)

Publication Number Publication Date
CN110035133A CN110035133A (zh) 2019-07-19
CN110035133B true CN110035133B (zh) 2021-09-21

Family

ID=67234392

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810028769.2A Active CN110035133B (zh) 2018-01-12 2018-01-12 在安卓WiFi-Direct连接中获取对等设备IP地址的方法及设备

Country Status (1)

Country Link
CN (1) CN110035133B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112565247B (zh) * 2020-12-03 2022-02-11 东北大学 基于IPv6的移动终端实时多媒体数据流传输系统及方法
CN112689029A (zh) * 2020-12-30 2021-04-20 海信视像科技股份有限公司 一种获取群组用户的ip地址的方法和装置及设备
CN113490197A (zh) * 2021-06-09 2021-10-08 深圳Tcl新技术有限公司 一种信息获取方法、装置和存储介质
CN113572823A (zh) * 2021-07-07 2021-10-29 维沃移动通信有限公司 文件传输系统及传输方法、电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104219339A (zh) * 2014-09-17 2014-12-17 北京金山安全软件有限公司 一种检测局域网中地址解析协议攻击的方法及装置
CN105359488A (zh) * 2013-05-21 2016-02-24 摩托罗拉移动有限责任公司 用于建立设备间通信的方法
CN106254147A (zh) * 2016-09-08 2016-12-21 珠海全志科技股份有限公司 一种用于Wi‑Fi网络的配置方法、物联网终端和控制端
CN106454766A (zh) * 2016-09-27 2017-02-22 盐城工学院 基于Android系统及Wi‑Fi Direct的实时协作数据共享系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9306902B2 (en) * 2012-08-29 2016-04-05 Qualcomm Incorporated Embedded thin DHCP for wi-fi direct to provide an IP address during connection establishment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105359488A (zh) * 2013-05-21 2016-02-24 摩托罗拉移动有限责任公司 用于建立设备间通信的方法
CN104219339A (zh) * 2014-09-17 2014-12-17 北京金山安全软件有限公司 一种检测局域网中地址解析协议攻击的方法及装置
CN106254147A (zh) * 2016-09-08 2016-12-21 珠海全志科技股份有限公司 一种用于Wi‑Fi网络的配置方法、物联网终端和控制端
CN106454766A (zh) * 2016-09-27 2017-02-22 盐城工学院 基于Android系统及Wi‑Fi Direct的实时协作数据共享系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"移动Android系统的WiFi Direct技术分析";冯宗越,朱嘉钢;《单片机与嵌入式系统应用》;20160302;全文 *

Also Published As

Publication number Publication date
CN110035133A (zh) 2019-07-19

Similar Documents

Publication Publication Date Title
CN110035133B (zh) 在安卓WiFi-Direct连接中获取对等设备IP地址的方法及设备
CN104202360B (zh) 访问网页的方法、装置及路由器
CN106685776B (zh) 一种局域网内智能设备发现方法及系统
US10754869B2 (en) Managing data format of data received from devices in an internet of things network
CN103888358A (zh) 一种路由方法、装置、系统及网关设备
KR101701158B1 (ko) 홈 네트워크의 장치에 대한 원격 접속 제공 방법 및 시스템
US20120258664A1 (en) Resolving an application service change in a system using bluetooth
CN110413845B (zh) 基于物联网操作系统的资源存储方法及装置
CN104410660A (zh) 多媒体资源的下载方法、装置、路由器及服务器
US11638138B2 (en) Device-to-device content providing method
CN115486038B (zh) 物联网配置方法、装置、计算机设备及存储介质
CN102790806B (zh) 一种基于http协议下载课件的方法及装置
TWI735633B (zh) 資料傳輸的方法、設備、裝置及系統
US20230045914A1 (en) Method and apparatus for controlling device in internet of things, and gateway device and storage medium
CN109446439B (zh) 一种资源目录的选择方法、装置、系统及存储介质
KR101275995B1 (ko) 정보 가전의 데이터 저장 시스템 및 데이터 처리 방법
CN103067495A (zh) 一种推送信息的方法及装置
CN104022923A (zh) 一种网络接口装置、系统及网络数据访问方法
CA2387211A1 (en) Communication system, and connection setting method and connection setting program of exchange and terminal
CN101741889B (zh) 一种网络服务集中管理的方法、系统及服务器
TW201620268A (zh) 智慧家電控制方法及系統
CN104869133A (zh) 一种数据记录的方法、系统以及接入服务器
CN114979025B (zh) 资源刷新方法、装置、设备及可读存储介质
CN113709231B (zh) 一种数据包加载方法、客户端、服务器、设备及存储介质
CN113709232B (zh) 数据包加载方法、客户端、客户端代理、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant