前言:近期在查询mdns的问题过程一波三折,问题总结下来可以分为三块,都是比较基础性的问题:
1.网关ifconfig查询地址
2.多个程序同时占用一个端口号占用编码问题
3.mdns协议及实现源码
mdns是用于局域网发现的一种协议,网关搭载的linux系统,首先得确定其使用的是哪个地址作为通讯,说一个最简单的指令:ifconfig,虽然早就知道这个指令,但是其实这个指令包含比较多的基础知识。
用我使用的openwrt路由器输入ifconfig:
br-lan Link encap:Ethernet HWaddr 04:A1:51:9A:03:67
inet addr:198.100.100.1 Bcast:198.100.100.255 Mask:255.255.255.0
inet6 addr: fdbb:e076:9029::1/60 Scope:Global
inet6 addr: fe80::6a1:51ff:fe9a:367/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:37358673 errors:0 dropped:0 overruns:0 frame:0
TX packets:49805372 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:10001210378 (9.3 GiB) TX bytes:49536338006 (46.1 GiB)
eth0 Link encap:Ethernet HWaddr BE:7F:7D:5D:09:D9
inet6 addr: fe80::bc7f:7dff:fe5d:9d9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:71274265 errors:0 dropped:0 overruns:383 frame:0
TX packets:67972711 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:23375869 (22.2 MiB) TX bytes:4047624223 (3.7 GiB)
Interrupt:4
eth0.1 Link encap:Ethernet HWaddr BE:7F:7D:5D:09:D9
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:27485423 errors:0 dropped:0 overruns:0 frame:0
TX packets:32246955 errors:0 dropped:0 overruns:0 ca