请不要评判,我是个新手,但我一直在到处寻找这个问题的答案,却找不到适合我的答案:
我的 PI 在开启时不断更改 IP。我没有关闭路由器,也没有重新启动 PI,但它从 IP:192.168.0.188 开始,不到两个小时就到了 IP:192.168.0.192,在此时间范围内它经过了以 189、190 和 191 结尾的 IP。
那么,为什么这对我很重要?因为在一个项目中,我必须模拟一个将捐赠给许多人的产品,而树莓派是这个产品的“心脏”。范围如下:我需要通过另一台设备连接到这个产品,但我无法使用互联网。我只需要使用两个设备都连接的网络,即使它没有互联网接入。
我目前所做的:一个 python/djangle API,当我在 RASPBERRY IP 上运行服务器(manage.py runserver 192.168.0.191:8000)时,我可以在另一台计算机上模拟(使用 postman)我通过向地址发送 get 来设置的 get 响应“http://192.168.0.191:8000/测试“(它只返回‘hi’)。好的,我确实设法从另一台设备访问它!太好了!但是,由于 IP 一直在变化,我需要不断地在正确的 IP 上重新启动服务器,将新 IP 添加到“ALLOWED_HOSTS”并更改发送 GET 请求的代码行。这很糟糕,这是我的主要问题。
由于它将被捐赠给许多不同的人,每个人都有不同的路由器,我想我无法为树莓派设置静态 IP。另外,我知道您可以为树莓派设置主机名以通过 ssh 访问它,但我需要通过 HTTP 协议访问它……(我也在尝试学习这一点)而且我不明白主机名在这种动态情况下如何帮助我。另外,我不能要求这些接收产品的人按照我的需要配置他们的路由器以使产品正常工作。
如果我能将树莓派连接到网络后冻结 IP,直到断开连接或关闭,那就太棒了。然后我就可以寻找新的 IP 并重新设置,没问题。如果有一个通用的解决方案,比如“哦,不,你可以设置一个主机名并在任何地方访问它,在这个主机名上运行你的服务器,而不必担心 IP,只需执行 A、B 和 C”,那就更棒了,但我已经搜索了这么多,对这个选项失去了希望。
附言:我也研究过 SAMBA,但显然它只能帮助连接 Windows / Unix 设备。我不知道是否可以将它与 Android 或 iOS 客户端一起使用,但这是必要的。
答案1
如果您能够从 Windows/MacOS/iOS/Android 机器访问 Pi,则可以使用 Bonjour mDNS 来避免使用原始 IP 地址。
看本文:
sudo apt-get 更新
sudo apt-get 升级
sudo apt-get 安装 avahi-daemon
然后,如果使用 Windows,请确保安装Bonjour 打印服务。
现在,当你打开任何与 Pi 的连接(浏览器、ssh 等)时,你将能够使用raspberrypi.本地而不是原始 IP 地址。
注意:我已经在每种机器类型上测试了此方法除了安卓系统但这个帖子表明它会起作用。