1
paradislover 2018-12-12 05:19:02 +08:00 via Android
参考 smart configure
|
2
cnnblike 2018-12-12 05:21:35 +08:00
了解下 avahi 和 zeroconf、bonjour
|
3
jimzhong 2018-12-12 08:29:46 +08:00
LZ 可以看一下[这篇文章]( http://www.microhowto.info/howto/send_a_udp_datagram_in_c.html),尤其是其中的 Sending to the IPv4 broadcast address 节。
|
4
goofool 2018-12-12 09:29:29 +08:00 via Android
pyrhon scapy
|
5
ttvast 2018-12-12 11:23:37 +08:00 1
首先,wifi 通讯是加密的,所以被设置设备无法通过监听 wifi 数据来获得 wifi 密钥的配置(不考虑暴力破解)。
但是,wifi 通讯协议无非是一个二层的无线通讯协议, 也就是在标准 ip 数据包加密之后加一些包头。所以作为被设置设备可以监听到所有的通讯数据包, 并且可以明确两个数据特征:1 发包者的地址(固定) 2 包长(与原始 ip 包长线性相关)。 这样,类似 airkiss 的协议就可以通过载波的方式,将 ssid 和密钥编码到 udp 包长中,被设置设备就可以通过包长序列来解码出 ssid 和密钥。 这种方式在 wifi 通讯复杂的环境下容易受到干扰,并不是每次都可以成功。实际上应用表现也是如此, 我经常会发现配置不上或者要配置很长时间。 以上纯属猜测,但是理论完全可行。 |
7
smallgoogle OP @goofool 这是局域网扫描。我需要的是对外部发送一个类似 WIFI 信号的广播。
|
8
smallgoogle OP @also24 你研究出来了么?
|
9
smallgoogle OP @paradislover 我想的是有没有 python 可以实现的。
|
10
icop 2018-12-12 11:42:46 +08:00
首先,你对计算机基本知识了解不够啊。
你先了解下 Socket。我给你找了一篇: https://www.cnblogs.com/LUO77/p/5801977.html 只要 ping 的通,理论上都可以进行 UDP 或者 TCP 的 Socket 通信。 UDP 还包括 单播,广播,多播。也给你找了一篇。 https://www.cnblogs.com/lidabo/p/5865045.html 正常的处理一般都是 服务器(就是你电脑),做广播处理。广播内容中包含了主机 IP 地址,端口等相关信息。 客户机网段内搜寻,搜寻到后,解析信息,与服务器进行 TCPSocket 通讯。当然你也可以用 UDPSocket 进行单个管理。 |
11
also24 2018-12-12 11:47:33 +08:00
|
12
q397064399 2018-12-12 11:53:38 +08:00
@icop #10 这个排版 看得真心累
|
13
also24 2018-12-12 11:57:28 +08:00
BTW:
楼主请仔细看 5 楼的回复,他回复的内容,对实现这个功能很重要。 这个功能并不是一个简单的 “ UDP ” 通信问题,而是如何巧妙的构造携带有数据的 “二层帧” ,至于 UDP,那只是构造这个帧的 “副产品” 而已。 |
14
also24 2018-12-12 12:12:24 +08:00
再次强调,这个问题本质上并不是一个 “ UDP 广播” 的问题。
你需要研究的是二层的数据帧,而不是 UDP 协议。 关于 airkiss,网上也是有一些分析文章的,简单看一下就可以发现,它仍然是基于对二层帧的修改的: https://blog.csdn.net/flyingcys/article/details/50248537 >在实际应用中,我们采用 UDP 广播包作为信息的载体。信息发送方向空间中发送一系列的 UDP 广播包,其中每一包的长度(即 Length 字段)都按照 Air Kiss 通信协议进行编码,信息接收方利用混杂模式监听空间中的无线信号,并从数据链路层截取 802.2 SNAP 格式数据包,便可得到已编码的 Length 字段,随后接收方便可根据 Air Kiss 通信协议解析出需要的信息。 |
15
paradislover 2018-12-12 13:04:28 +08:00 via Android
@smallgoogle 你要搞懂原理,Python 实现不是分分钟的事情
|
16
smallgoogle OP @also24 就是没看懂。 - -
|