如何获取其他设备的对等IP地址

3

你好 @user2301281,你是想从 onConnectionInfoAvailable(final WifiP2pInfo info) 中获取 “组所有者IP地址” 吗?http://developer.android.com/training/connect-devices-wirelessly/wifi-direct.html - Hariharan Gandhi
可能是重复的问题:如何在Wi-Fi直连场景下获取每个设备的IP地址? - patryk.beza
2个回答

2

有一种方法可以实现这个...

网络服务发现(NSD)添加到您的应用程序中,可以让您的用户识别本地网络上支持应用程序请求服务的其他设备。这对于各种点对点应用程序非常有用,例如文件共享或多人游戏。

首先,您需要执行以下操作:

1. 在网络上注册您的服务

2. 在网络上发现服务

3. 连接到网络上的服务

4. 在应用程序关闭时取消注册您的服务

完成第三步后,您的应用程序将接收到详细的服务信息,包括IP地址端口号。这是您创建自己的网络连接到该服务所需的所有内容。

查看详情(包括示例应用程序)... 点击此处。 第二个链接... 点击此处


2
WifiP2p在设备连接到组时会自动分配IP。基本上,组所有者充当DHCP服务器,并为组中的所有其他对等方分配IP,GO获取GO_IP = 192.168.49.1
为GO分配一个角色,每当新设备连接时,通过从文件/proc/net/arp中读取MAC地址与IP的哈希映射向其发送。现在,当您想要向MAC地址发送文件或消息时,请从此哈希映射中读取其IP。但是,对等方只能将消息发送给GO,因此如果消息发送到GO_IP以外的IP,则需要将该角色分配给GO,然后将其转发到相应的设备。
如果您对此解决方案有任何问题,请告诉我。

我在这里寻求您的建议,http://developer.android.com/training/connect-devices-wirelessly/wifi-direct.html 但我不知道如何从onConnectionInfoAvailable(final WifiP2pInfo info)中获取GO_IP。我也找不到您提到的哈希表。您能否详细说明或提供任何参考链接?谢谢。 - user2301281
如果你读取系统文件 proc/net/arp,你将得到一个当前连接到你的热点的设备列表。因此,当人们连接到你时,读取这个文件并解析它以获取硬件地址(MAC地址)和IP地址。 - unrealsoul007

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接