https://github.com/lucasec/mdns-repeater

代码来自上面的链接,这个东西有什么用处了

1:模仿程序,可以显示多播数据的转发

2:对 mDNS的数据进行转发

3:多播数据是无法穿越路由NAT,如 openwrt中的WAN和LAN对于的网络接口

4:mdns-repeater  使用直接 接网络接口名称 mdns-repeater eth0 br-lan 就可以实现数据在接口之间的转发

5:mDNS 的简介

mDNS , multicast DNS, 可以理解为局域网内部的 DNS 系统,它和 DNS 有很多相似的地方,通过它可以实现局域网内部的服务发现、查找和广播。同时它是基于组播的协议。

mDNS : multicast DNS ,规范文档地址: http://www.ietf.org/rfc/rfc6762.txt。

在局域网内,你要通过一台主机和其他主机进行通信,你需要知道对方的 ip 地址,但是有些时候,你并不知道对方的 ip 地址,因为一般使用 DHCP 动态分配 ip 地址的局域网内,各个主机的 IP 地址是由 DHCP 服务器来帮你分配 IP 地址的。所以在很多情况下,你要知道对方的 IP 地址是比较麻烦的。

鉴于发现这篇文章最近的浏览量比较多,晚上也有不少转载,特别声明一下,文章水平可能不大够,只是我当时的一些理解,所以希望大家以批判的角度来看,然后又什么问题欢迎讨论。真心不希望误导大家 ^_^

mDNS 的工作原理

首先,在 IP 协议里规定了一些保留地址,其中有一个是 224.0.0.251,对应的 IPv6 地址是 [FF02::FB]。

mDNS 协议规定了端口为 5353,而 DNS 的端口是 53。

mDNS 基于 UDP 协议。DNS 一般也是基于 UDP 协议的,但是也可以使用 TCP 协议。

如果理解了 DNS 协议,再去理解 mDNS 协议就很简单了,区别只是 mDNS 一般作用在一个局域网内的,有特定的 IP 地址,也就是 224.0.0.251,有特定的端口 5353,mDNS 的作用是实现局域网内的服务发现,查询,注册,DNS 作用是实现域名的解析,作用大概是一样的。

每个进入局域网的主机,如果开启了 mDNS 服务的话,都会向局域网内的所有主机组播一个消息,我是谁,和我的IP地址是多少。然后其他也有该服务的主机就会响应,也会告诉你,它是谁,它的 IP 地址是多少。当然,具体实现要比这个复杂点。

比如,A 主机进入局域网,开启了 mDNS 服务,并向 mDNS 服务注册以下信息:我提供 FTP 服务,我的 IP 是 192.168.1.101,端口是 21。当 B 主机进入局域网,并向 B 主机的 mDNS 服务请求,我要找局域网内 FTP 服务器,B主机的 mDNS 就会去局域网内向其他的 mDNS 询问,并且最终告诉你,有一个IP地址为 192.168.1.101,端口号是 21 的主机,也就是 A 主机提供 FTP 服务,所以 B 主机就知道了 A 主机的 IP 地址和端口号了。

大概的原理就是这样子,mDNS 提供的服务要远远多于这个,当然服务多但并不复杂。

在 Apple 的设备上(电脑,笔记本,iphone,ipad等设备)都提供了这个服务。很多 Linux 设备也提供这个服务。Windows 的设备可能没有提供,但是如果安装了 iTunes 之类的软件的话,也提供了这个服务。

这样就可以利用这个服务开发一些局域网内的自动发现,然后提供一些局域网内交互的应用了。

Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: Found user 'nobody' (UID 65534) and group 'nogroup' (GID 65534).
Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: Successfully dropped root privileges.
Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: avahi-daemon 0.8 starting up.
Thu Jun 23 03:40:18 2022 daemon.warn avahi-daemon[2037]: WARNING: No NSS support for mDNS detected, consider installing nss-mdns!
Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: Loading service file /etc/avahi/services/http.service.
Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: Loading service file /etc/avahi/services/ssh.service.
Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: Joining mDNS multicast group on interface br-lan.IPv6 with address fdc3:cf9c:39ea:1::1.
Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: New relevant interface br-lan.IPv6 for mDNS.
Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: Joining mDNS multicast group on interface br-lan.IPv4 with address 198.19.255.1.
Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: New relevant interface br-lan.IPv4 for mDNS.
Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: Joining mDNS multicast group on interface eth0.IPv6 with address fdc3:cf9c:39ea:0:211:c7ff:fe11:1911.
Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: New relevant interface eth0.IPv6 for mDNS.
Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: Joining mDNS multicast group on interface eth0.IPv4 with address 198.18.6.93.
Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: New relevant interface eth0.IPv4 for mDNS.
Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: Network interface enumeration completed.
Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: Registering new address record for fdc3:cf9c:39ea:1::1 on br-lan.*.
Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: Registering new address record for 198.19.255.1 on br-lan.IPv4.
Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: Registering new address record for fdc3:cf9c:39ea:0:211:c7ff:fe11:1911 on eth0.*.
Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: Registering new address record for fdc3:cf9c:39ea:0:68a1:394d:8034:e494 on eth0.*.
Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: Registering new address record for 198.18.6.93 on eth0.IPv4.
Thu Jun 23 03:40:18 2022 daemon.info avahi-daemon[2037]: Registering HINFO record with values 'MIPS'/'LINUX'.

mdns-repeater Multicast DNS repeater相关推荐

  1. Repeater嵌套绑定Repeater[转]

    cs代码: View Code 1 privatevoid RpTypeBind() 2 {//GetQuestionTypeAndCount() 返回一个datatable 3  this.rpty ...

  2. Repeater嵌套绑定Repeater

    cs代码: private void RpTypeBind()         {//GetQuestionTypeAndCount() 返回一个datatable             this. ...

  3. 解决C# Repeater内嵌Repeater 数据绑定,以及第二次层Repeater的ItemDataBound事件怎么处理...

    呵呵,好久没写了,继续上问题,以后我写的都是我遇到的问题以及群里相关人士的问题,比较棘手的贴在这里(顺便打个广告群号115180614,.net技术群,混群的勿扰,群主江湖,就说老男孩介绍就行了.). ...

  4. 【源码】ListT泛型绑定repeater,以及repeater的交替绑定

    原文发布时间为:2009-10-28 -- 来源于本人的百度文章 [由搬家工具导入] 后台: using System; using System.Collections.Generic; publi ...

  5. 【mDNS】本地DNS解析协议

    组播地址 224.0.0.251:5353 mDNS-client : 客户端(组播请求), 带缓存(过期时间) mDNS-server : 服务器(组播/单播响应)

  6. Cisco无线mDNS

    1.mDNS介绍 两个协议:mDNS和Bonjour mDNS: mDNS(Multicast DNS):主要实现了在没有传统DNS Server的情况下使用LAN内的主机实现相互发现和通信. 使用U ...

  7. android mdns开发实例,mDNS浅析及应用

    Post Views: 5,812 mDNS是multicast DNS,mDns实现了在局域网内的服务发现功能.mDNS协议应用非常广泛,其中苹果的Bonjour就是mDNS的一个实现,此外Andr ...

  8. vyos User Guide

    vyos User Guide 来源 https://wiki.vyos.net/wiki/User_Guide The VyOS User Guide is focused on providing ...

  9. 开发板给电脑自动分配IP?手把手教部署零配置网络实现电脑与开发板直连

    关注.星标嵌入式客栈,精彩及时送达 [导读] 在做一个ZYNQ项目时,需要实现嵌入式Linux与Windows电脑直连.可能会有盆友会遇到类似的需求,所以整理分享一下. 问题描述 基于ZYNQ芯片设计 ...

最新文章

  1. HDU 3549 Flow Problem(最大流模版EK算法)
  2. 计算机应用基础实验报告册,计算机应用基础实验报告(flash)
  3. 静默安装oracle11.2.0.4
  4. CodeForces - 1252L Road Construction(基环树+有源汇有上下界的最大流)
  5. C#调用WebKit内核
  6. 常见音视频格式(转载)
  7. linux查看分区树形状态,查看Linux磁盘的分区状态(lsblk、blkid、parted)
  8. Best Cow Fences(信息学奥赛一本通-T1434)
  9. react html编辑器,在线代码编辑器 Codemirror 的轻量级 React 组件
  10. python请输入星期几的第一个_python如何获取星期几
  11. 后端分页神器,mybatis pagehelper 在SSM与springboot项目中的使用
  12. 最有价值的编程忠告[转CSDN]
  13. JNI 概述 (翻译)
  14. 【cf-edu-round72: C 】The Number Of Good Substrings(思维)
  15. 收集整理的125个微信小程序模板源码
  16. GPS模拟器与Windows Mobile模拟器
  17. 经典算法:蒙特卡洛方法(MCMC)
  18. Oracle between and
  19. Right-BICEP单元测试
  20. 用html画一个企鹅图案的代码,HTML5 Canvas来绘制图形

热门文章

  1. 2023年第十三届MathorCup高校数学建模挑战赛|A题|量子计算机在信用评分卡组合优化中的应用
  2. jmeter“察看结果树”显示的请求数不全
  3. 学习笔记-Matlab算法篇-规划算法
  4. kubectl查看node状态_K8S故障排除方法 - 笃行之 - 博客园
  5. Shiro框架使用及配置之权限管理系统(1)
  6. 加州旅馆 Hotel California (The Eagles)
  7. 【前端学习之HTMLCSS进阶篇】-- CSS第一篇 -- @规则与web字体图标
  8. win10离线装linux子系统 运行ubuntu.exe失败闪退没反应
  9. 日撸力扣三道题---Day3---数组算法+二分查找
  10. python颜色识别原理_python+opencv实现颜色检测、轮廓检测、颜色追踪