检测安卓手机是不是连接到局域网

Posted

技术标签:

【中文标题】检测安卓手机是不是连接到局域网【英文标题】:Detect if Android phones are connected to LAN检测安卓手机是否连接到局域网 【发布时间】:2017-10-03 19:24:13 【问题描述】:

大家好,我正在为我的 Raspberry Pi 家庭服务器编写智能家庭扩展。为此,我想通过检查智能手机是否连接到本地网络来了解何时有人在家。

不幸的是,到目前为止,在最好的情况下,ping android 设备是不可靠的。这取决于睡眠状态,而 Nexus 5X 根本不响应 ping。我也不会摆弄睡眠设置,因为这会缩短电池寿命。

我的路由器说设备已连接,但我不知道如何转发此信息。有什么方法可以确定任何智能手机已使用 Python 连接到 WiFi?

【问题讨论】:

【参考方案1】:

我相信这个问题has been asked before,但我花了一些谷歌搜索才能找到它。简短的回答是肯定的,但这需要您对路由器的服务、DNS 和 DHCP 有所了解。

【讨论】:

嗯,这很有趣,但不幸的是高于我的工资等级:/。我无法用 Python 重写已接受的答案。我目前正在考虑编写一个 PhantomJS 脚本来抓取我的路由器后端......【参考方案2】:

好的,简单的方法是使用映射函数的“python-nmap”模块。

import nmap
nm = nmap.PortScanner()
nm.scan(hosts='192.168.0.1/24', arguments='-n -sP -PE -PA21,23,80,3389')
hosts_list = [(x, nm[x]['status']['state']) for x in nm.all_hosts()]
for host, status in hosts_list:
     print('0:1'.format(host, status))

“192.168.0.1”是您的路由器 IP。这将返回所有已连接设备的列表,包括所有休眠的 Android 设备。

192.168.178.1:up
192.168.178.2:up
...

不幸的是,这个 python-nmap 不使用 Python3,这是我仍然需要弄清楚的。

【讨论】:

以上是关于检测安卓手机是不是连接到局域网的主要内容,如果未能解决你的问题,请参考以下文章

苹果手机和安卓手机怎么传照片

连接到安卓手机的usb主机设备必须是arduino吗?

Gnirehtetadb安卓手机通过USB连接到电脑上网

安卓手机跟电脑连接,用哪个软件好,搜索不到?

安卓手机共享网络电脑连接不上怎么办

安卓手机 用电脑怎么进入SD卡根目录