qnetworkinterface类负责提供主机的ip地址和网络接口的列表。
qnetworkinterface表示了当前程序正在运行时与主机绑定的一个网络接口。每个网络接口可能包含0个或多个ip地址,每个ip地址都可选择性地与一个子网掩码和/或一个广播地址相关联。这样的列表可以通过addressentries()方法获得。当子网掩码或者广播地址不必要时,可以使用alladdresses()便捷函数来仅仅获得ip地址。
qnetworkinterface使用hardwareaddress()方法获取接口的硬件地址。
不是所有的操作系统都支持这些所有的特性。只有ipv4地址可以保证在所有平台上都能被这个类列举出来,尤其是ipv6地址的列举目前只支持windows xp及相关版本、linux、macos和bsds。
<a href="#%e7%ae%80%e8%bf%b0">简述</a>
<a href="#%e8%8e%b7%e5%8f%96%e6%89%80%e6%9c%89ip%e5%9c%b0%e5%9d%80">获取所有ip地址</a>
<a href="#%e8%8e%b7%e5%8f%96%e7%bd%91%e7%bb%9c%e6%8e%a5%e5%8f%a3%e5%88%97%e8%a1%a8">获取网络接口列表</a>
这个便利函数返回主机上面发现的所有ip地址。相当于allinterfaces()返回的所有对象调用addressentries()来获取qhostaddress对象列表,然后每一个对象调用qhostaddress::ip()方法。
hardwareaddress()返回硬件地址。对以太网接口,这是一个用字符串表示的mac地址(冒号分隔)。其它接口类型可能使用其他类型的硬件地址,不要依靠这个函数来返回一个合法的mac地址。