- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我使用了 getifaddrs() 函数来获取接口(interface)的 IP 地址。从手册页,我知道:
The ifa_addr field references either the address of the interface or the link level address of the interface, if one exists, otherwise it is NULL. (The sa_family field of the ifa_addr field should be consulted to deter- mine the format of the ifa_addr address.)
我的问题是:ifa_addr 怎么可能是 NULL?在我看来,每个接口(interface)都有其地址,不是吗?
我google了一晚上,发现的每一页都只是说“这个字段可能包含一个NULL指针”,没有更多的解释......
我真的不知道如何搜索以获得详细信息,我尝试了很多关键词,比如“getifaddrs ifa_addr NULL”...但是谷歌只给我看 getifaddrs() 函数的手册页...
但是,我确实只找到了一页,这给了我更多的信息。一点点!
http://sourceforge.net/p/bonding/discussion/77913/thread/03f93486/
那么,谁能告诉我一些关于这个主题的更详细的信息?
最佳答案
如前所述,对于没有分配任何地址的接口(interface),ifa_addr 字段可能为 NULL。在实践中看到这一点的一个简单方法是添加一个隧道接口(interface):
$ sudo ip tuntap add tun42 mode tun
这将创建一个没有任何地址的隧道接口(interface):
$ ifconfig -a
tun42: flags=4240<POINTOPOINT,NOARP,MULTICAST> mtu 1500
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (UNSPEC)
$ ip link show
5: tun42: <POINTOPOINT,MULTICAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 500
link/none
关于c - 调用 getifaddrs() 时 ifa_addr 何时会为 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22767155/
我正在遍历一个接口(interface)列表,试图从每个接口(interface)获取一个 IP 地址。我观察到一个奇怪的错误,其中 char* router_ip0 变量被更新为我在循环中设置的每个
我使用了 getifaddrs() 函数来获取接口(interface)的 IP 地址。从手册页,我知道: The ifa_addr field references either the addre
我是一名优秀的程序员,十分优秀!