我正在尝试找到一种方法来有效地更改运行我的程序的计算机的 IP 和网络掩码。我必须能够与用户有权访问的“盒子”保持通信,并且可以更改该盒子的 IP(但不能更改 Linux 主机的 IP)。幸运的是,盒子通过多播地址广播其 IP。我能够读取该地址并与盒子正在广播的任何 IP 通信。但是,我的问题是,当机器更改 Linux 主机子网之外的 IP 时,我会失去连接(正如我所期望的那样)。
因此,当它检测到正在广播的 IP 在其子网之外时,我需要一种快速而肮脏的方法来更改 Linux 主机的 IP 和网络掩码。我知道我可以修改/编辑 /etc/networking/interfaces 文件,但我希望有一些“实时”的东西,我不需要重新启动网络接口或 Linux 主机。此外,我想在更改期间维护我当前打开的所有套接字。我的主要问题是我有大量由其他应用程序运行的连接,这些连接不会因 IP 转换而损坏。此外,如果可能的话,我想避免在主机 IP 切换后重做必须为 Linux 运行多播路由添加命令。
我能做些什么来满足这些要求吗?谢谢。