[讨论] ESP8266 第一次通过STA模式连接WiFi之后会保存ssid与密码?

p0we7   2016-11-27 22:13 楼主

擦除Flash,重刷了最新1.8.6固件, WebRepl 没有启动,默认关闭了.
我通过串口用以下代码连接上家里的WiFi, 本地电脑可以ping通模式 .
  1. wlan = network.WLAN(network.STA_IF)
  2. wlan.active(True)
  3. wlan.ifconfig(('192.168.1.33', '255.255.255.0', '192.168.1.254', '114.114.114.114'))
  4. wlan.connect('Myhome', 'MyRoomPassword')


「以上是前提」

之后我通过 按键复位 或 是 machine.reset() 两种复位后 .
我再在串口输入以下内容获得了不明真相的结果.192.168.1.238这个IP是DHCP分配的, 此时已经自动连接上WiFi.
但是我并没有执行 wlan.connect() , 这意味着他自己记录了我的WiFi SSID与密码了?

  1. MicroPython v1.8.6-7-gefd0927 on 2016-11-10; ESP module with ESP8266
  2. Type "help()" for more information.
  3. >>> import network
  4. >>> wlan = network.WLAN(network.STA_IF)
  5. >>> wlan.active(True)
  6. >>> wlan.ifconfig()
  7. ('192.168.1.238', '255.255.255.0', '192.168.1.254', '192.168.1.254')
  8. >>> wlan.isconnected()
  9. True
  10. >>>


请问有人遇到过相同问题吗? 
需然可以添加一个判断如果IP 不是 192.168.1.33 那么就再次设置IP .
但是这个貌似不合逻辑啊 .







回复评论 (11)

我测试的结果也是如此,每次上电或是 RESET 都会自动连上 WIFI,除非运行了 wlan.active(False) 才会将 WIFI 关闭。
点赞  2016-11-27 22:38
引用: slotg 发表于 2016-11-27 22:38
我测试的结果也是如此,每次上电或是 RESET 都会自动连上 WIFI,除非运行了 wlan.active(False) 才会将 WIF ...

还好不是我一个人这样 .

我估计这个是bug啊, 他首次连接的时候自动保存了.

然而他都保存了,也不把IP也保存上.
点赞  2016-11-27 22:41
引用: p0we7 发表于 2016-11-27 22:41
还好不是我一个人这样 .

我估计这个是bug啊, 他首次连接的时候自动保存了.

然而他都保存了,也不把 ...

ip是路由器自动分配的,当然就不保存了,除非你自己给他设一个固定的ip。
点赞  2016-11-28 00:16
引用: johnrey 发表于 2016-11-28 00:16
ip是路由器自动分配的,当然就不保存了,除非你自己给他设一个固定的ip。

你没看见我第一次连接的代码吗?

第一次连接我已经设置了自己的IP 。

然后复位后他只保存 SSID与密码 。然后就自动连接上去了 。而且是通过DHCP获取IP。
点赞  2016-11-28 09:15
引用: p0we7 发表于 2016-11-28 09:15
你没看见我第一次连接的代码吗?

第一次连接我已经设置了自己的IP 。

然后复位后他只保存 SSID与 ...

通过DHCP默认是由路由器分配IP,这样每次可能会不同,除非你在路由器上为8266分配了静态IP。
点赞  2016-11-28 09:41
引用: dcexpert 发表于 2016-11-28 09:41
通过DHCP默认是由路由器分配IP,这样每次可能会不同,除非你在路由器上为8266分配了静态IP。

但是我现在问题是  。

我新建了一个WiFi 的对象他就自动连接了哦 。

我都还没有 执行 wlan.connet('ssid', 'password')
点赞  2016-11-28 09:45
引用: p0we7 发表于 2016-11-28 09:45
但是我现在问题是  。

我新建了一个WiFi 的对象他就自动连接了哦 。

我都还没有 执行 wlan.connet ...

这应该是2件事, ESP8266 装置只要设定连网后一开电就会自动连网,也就是只要你运行过 wlan.connet('ssid', 'password') 之后,下一次开电就会自动以先前的 ssid 跟 password 连网。

连网是经过路由器连上的,连上路由器之后,路由器会分配给这个装置一个 IP,而这个 IP 在装置下一次连网的时候有可能会一样,也有可能会不一样,这个 IP 是由路由器决定的而不是由装置决定的。
点赞  2016-11-28 10:29
引用: slotg 发表于 2016-11-28 10:29
这应该是2件事, ESP8266 装置只要设定连网后一开电就会自动连网,也就是只要你运行过 wlan.connet('ssid' ...

我现在并不关心 模块的IP是什么, 从哪里获得这个IP .
因为有大把方法可以让设备的IP设定为我想要的 .


我只是想知道 "模块连接WIFI一次后 , 复位就会 自动连接WIFI ."
这个问题是不是本来设计出来就是这样子,还是这是一个bug .
点赞  2016-11-28 11:03
引用: p0we7 发表于 2016-11-28 11:03
我现在并不关心 模块的IP是什么, 从哪里获得这个IP .
因为有大把方法可以让设备的IP设定为我想要的 .

...

只要是使用 ESP8266 模块的板子似乎都ˋ是这个样子,应该不是 bug
点赞  2016-11-28 11:23
引用: p0we7 发表于 2016-11-28 11:03
我现在并不关心 模块的IP是什么, 从哪里获得这个IP .
因为有大把方法可以让设备的IP设定为我想要的 .

...

slotg说的没错,系统就是这样设计的。
点赞  2016-11-28 12:19
看下               
点赞  2018-7-12 16:47
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复